From f6c7a3eba8309d705d48f7e049d72262faab345f Mon Sep 17 00:00:00 2001 From: seveibar Date: Thu, 17 Oct 2024 09:43:40 -0700 Subject: [PATCH 1/2] add simple_battery --- bun.lockb | Bin 79724 -> 79724 bytes src/any_circuit_element.ts | 1 + src/source/any_source_component.ts | 2 ++ src/source/index.ts | 1 + src/source/source_battery.ts | 11 +++++++++++ src/units/index.ts | 16 ++++++++++++++++ 6 files changed, 31 insertions(+) create mode 100644 src/source/source_battery.ts diff --git a/bun.lockb b/bun.lockb index dd6c099be74d098b890129a9083880cb4894ccb6..89ed1a9e7a14b760bd1dc8ed6fba05e5b5928ea5 100755 GIT binary patch delta 22 ecmaF!j^)iemJNsRurtOP>RIX;Z$5QrQ4|1#I|{%6 delta 22 bcmaF!j^)iemJNsRuro1$!RAwU7DWL7czFqG diff --git a/src/any_circuit_element.ts b/src/any_circuit_element.ts index ac9bdd5..7dd6a8b 100644 --- a/src/any_circuit_element.ts +++ b/src/any_circuit_element.ts @@ -23,6 +23,7 @@ export const any_circuit_element = z.union([ src.source_simple_diode, src.source_simple_resistor, src.source_simple_power_source, + src.source_simple_battery, pcb.pcb_component, pcb.pcb_hole, pcb.pcb_plated_hole, diff --git a/src/source/any_source_component.ts b/src/source/any_source_component.ts index 78b75d9..8a77c6f 100644 --- a/src/source/any_source_component.ts +++ b/src/source/any_source_component.ts @@ -7,6 +7,7 @@ import { source_simple_bug } from "./source_simple_bug" import { source_simple_chip } from "./source_simple_chip" import { source_led } from "./source_led" import { source_simple_power_source } from "./source_simple_power_source" +import { source_battery } from "./source_battery" export const any_source_component = z.union([ source_simple_resistor, @@ -17,6 +18,7 @@ export const any_source_component = z.union([ source_simple_bug, source_led, source_simple_power_source, + source_battery, ]) export type AnySourceComponent = z.infer diff --git a/src/source/index.ts b/src/source/index.ts index 3037fa4..8e8c9a4 100644 --- a/src/source/index.ts +++ b/src/source/index.ts @@ -13,3 +13,4 @@ export * from "./source_trace" export * from "./base/source_component_base" export * from "./source_group" export * from "./source_net" +export * from "./source_battery" diff --git a/src/source/source_battery.ts b/src/source/source_battery.ts new file mode 100644 index 0000000..ef55f87 --- /dev/null +++ b/src/source/source_battery.ts @@ -0,0 +1,11 @@ +import { z } from "zod" +import { source_component_base } from "src/source/base/source_component_base" +import { battery_capacity } from "src/units" + +export const simple_source_battery = source_component_base.extend({ + ftype: z.literal("simple_battery"), + capacity: battery_capacity, +}) + +export type SourceBattery = z.infer +export type SourceBatteryInput = z.input diff --git a/src/units/index.ts b/src/units/index.ts index 643f0d8..e2105a4 100644 --- a/src/units/index.ts +++ b/src/units/index.ts @@ -112,5 +112,21 @@ export const rotation = z return Number.parseFloat(arg) }) +export const battery_capacity = z + .number() + .or(z.string().endsWith("mAh")) + .transform((v) => { + if (typeof v === "string") { + const valString = v.replace("mAh", "") + const num = Number.parseFloat(valString) + if (Number.isNaN(num)) { + throw new Error("Invalid capacity") + } + return num + } + return v + }) + .describe("Battery capacity in mAh") + export type InputRotation = number | string export type Rotation = number From b80de734d4a61aa1296dd2f5678eb7c7297b4a17 Mon Sep 17 00:00:00 2001 From: seveibar Date: Thu, 17 Oct 2024 09:45:53 -0700 Subject: [PATCH 2/2] renaming to match convention --- src/source/any_source_component.ts | 4 ++-- src/source/index.ts | 2 +- src/source/{source_battery.ts => source_simple_battery.ts} | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) rename src/source/{source_battery.ts => source_simple_battery.ts} (51%) diff --git a/src/source/any_source_component.ts b/src/source/any_source_component.ts index 8a77c6f..3962157 100644 --- a/src/source/any_source_component.ts +++ b/src/source/any_source_component.ts @@ -7,7 +7,7 @@ import { source_simple_bug } from "./source_simple_bug" import { source_simple_chip } from "./source_simple_chip" import { source_led } from "./source_led" import { source_simple_power_source } from "./source_simple_power_source" -import { source_battery } from "./source_battery" +import { source_simple_battery } from "./source_simple_battery" export const any_source_component = z.union([ source_simple_resistor, @@ -18,7 +18,7 @@ export const any_source_component = z.union([ source_simple_bug, source_led, source_simple_power_source, - source_battery, + source_simple_battery, ]) export type AnySourceComponent = z.infer diff --git a/src/source/index.ts b/src/source/index.ts index 8e8c9a4..c43a1c6 100644 --- a/src/source/index.ts +++ b/src/source/index.ts @@ -13,4 +13,4 @@ export * from "./source_trace" export * from "./base/source_component_base" export * from "./source_group" export * from "./source_net" -export * from "./source_battery" +export * from "./source_simple_battery" diff --git a/src/source/source_battery.ts b/src/source/source_simple_battery.ts similarity index 51% rename from src/source/source_battery.ts rename to src/source/source_simple_battery.ts index ef55f87..5abc857 100644 --- a/src/source/source_battery.ts +++ b/src/source/source_simple_battery.ts @@ -2,10 +2,10 @@ import { z } from "zod" import { source_component_base } from "src/source/base/source_component_base" import { battery_capacity } from "src/units" -export const simple_source_battery = source_component_base.extend({ +export const source_simple_battery = source_component_base.extend({ ftype: z.literal("simple_battery"), capacity: battery_capacity, }) -export type SourceBattery = z.infer -export type SourceBatteryInput = z.input +export type SourceSimpleBattery = z.infer +export type SourceSimpleBatteryInput = z.input