Skip to content

Commit

Permalink
changed parameters type from json string to any object
Browse files Browse the repository at this point in the history
  • Loading branch information
ShiboSoftwareDev committed Sep 22, 2024
1 parent 8a8b7a3 commit 6e741a8
Show file tree
Hide file tree
Showing 23 changed files with 167 additions and 166 deletions.
10 changes: 5 additions & 5 deletions src/fn/bga.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ export type BgaDef = z.infer<typeof bga_def>

export const bga = (
raw_params: BgaDefInput,
): { circuitJson: AnySoupElement[]; parameters: string } => {
const params = bga_def.parse(raw_params)
let { num_pins, grid, p, w, h, ball, pad, missing } = params
): { circuitJson: AnySoupElement[]; parameters: any } => {
const parameters = bga_def.parse(raw_params)
let { num_pins, grid, p, w, h, ball, pad, missing } = parameters

ball ??= (0.75 / 1.27) * p

Expand Down Expand Up @@ -108,7 +108,7 @@ export const bga = (
if (num_pins_missing !== missing_pin_nums.length) {
throw new Error(
`not able to create bga component, unable to determine missing pins (try specifying them with "missing+1+2+..."\n\n${JSON.stringify(
params,
parameters,
null,
" ",
)}`,
Expand Down Expand Up @@ -137,5 +137,5 @@ export const bga = (
}
}

return { circuitJson: [...pads], parameters: JSON.stringify(params) }
return { circuitJson: [...pads], parameters }
}
6 changes: 3 additions & 3 deletions src/fn/cap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { rectpad } from "../helpers/rectpad"
import { PassiveDef, passive } from "../helpers/passive-fn"

export const cap = (
params: PassiveDef,
): { circuitJson: AnySoupElement[]; parameters: string } => {
return { circuitJson: passive(params), parameters: JSON.stringify(params) }
parameters: PassiveDef,
): { circuitJson: AnySoupElement[]; parameters: any } => {
return { circuitJson: passive(parameters), parameters }
}
32 changes: 16 additions & 16 deletions src/fn/dfn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,25 @@ export const dfn_def = extendSoicDef({})
*/
export const dfn = (
raw_params: SoicInput,
): { circuitJson: AnySoupElement[]; parameters: string } => {
const params = dfn_def.parse(raw_params)
): { circuitJson: AnySoupElement[]; parameters: any } => {
const parameters = dfn_def.parse(raw_params)
const pads: AnySoupElement[] = []
for (let i = 0; i < params.num_pins; i++) {
for (let i = 0; i < parameters.num_pins; i++) {
const { x, y } = getCcwSoicCoords({
num_pins: params.num_pins,
num_pins: parameters.num_pins,
pn: i + 1,
w: params.w,
p: params.p ?? 1.27,
pl: params.pl,
w: parameters.w,
p: parameters.p ?? 1.27,
pl: parameters.pl,
widthincludeslegs: true,
})
pads.push(rectpad(i + 1, x, y, params.pl ?? "1mm", params.pw ?? "0.6mm"))
pads.push(rectpad(i + 1, x, y, parameters.pl ?? "1mm", parameters.pw ?? "0.6mm"))
}

// The silkscreen is 4 corners and an arrow identifier for pin1
const m = Math.min(1, params.p / 2)
const sw = params.w + m
const sh = (params.num_pins / 2 - 1) * params.p + params.pw + m
const m = Math.min(1, parameters.p / 2)
const sw = parameters.w + m
const sh = (parameters.num_pins / 2 - 1) * parameters.p + parameters.pw + m
const silkscreenPaths: PcbSilkscreenPath[] = []

for (const corner of CORNERS) {
Expand All @@ -46,21 +46,21 @@ export const dfn = (
pcb_component_id: "",
pcb_silkscreen_path_id: "",
route: [
{ x: (dx * sw) / 2 - dx * params.p, y: (dy * sh) / 2 },
{ x: (dx * sw) / 2 - dx * parameters.p, y: (dy * sh) / 2 },
{ x: (dx * sw) / 2, y: (dy * sh) / 2 },
{ x: (dx * sw) / 2, y: (dy * sh) / 2 - dy * params.p },
{ x: (dx * sw) / 2, y: (dy * sh) / 2 - dy * parameters.p },
],
type: "pcb_silkscreen_path",
})
}

// Arrow
/** arrow size */
const as = params.p / 4
const as = parameters.p / 4
/** Arrow tip x */
const atx = -sw / 2 - as / 2
/** Arrow tip y */
const aty = sh / 2 - params.p / 2
const aty = sh / 2 - parameters.p / 2

silkscreenPaths.push({
layer: "top",
Expand Down Expand Up @@ -89,6 +89,6 @@ export const dfn = (

return {
circuitJson: [...pads, ...silkscreenPaths],
parameters: JSON.stringify(params),
parameters,
}
}
6 changes: 3 additions & 3 deletions src/fn/diode.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { AnySoupElement } from "@tscircuit/soup"
import { passive } from "src/helpers/passive-fn"

export const diode = (params: {
export const diode = (parameters: {
tht: boolean
p: number
}): { circuitJson: AnySoupElement[]; parameters: string } => {
return { circuitJson: passive(params), parameters: JSON.stringify(params) }
}): { circuitJson: AnySoupElement[]; parameters: any } => {
return { circuitJson: passive(parameters), parameters }
}
20 changes: 10 additions & 10 deletions src/fn/dip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,23 +82,23 @@ export const dip = (raw_params: {
p?: number
id?: string | number
od?: string | number
}): { circuitJson: AnySoupElement[]; parameters: string } => {
const params = dip_def.parse(raw_params)
}): { circuitJson: AnySoupElement[]; parameters: any } => {
const parameters = dip_def.parse(raw_params)
const platedHoles: AnySoupElement[] = []
for (let i = 0; i < params.num_pins; i++) {
for (let i = 0; i < parameters.num_pins; i++) {
const { x, y } = getCcwDipCoords(
params.num_pins,
parameters.num_pins,
i + 1,
params.w,
params.p ?? 2.54,
parameters.w,
parameters.p ?? 2.54,
)
platedHoles.push(
platedhole(i + 1, x, y, params.id ?? "0.8mm", params.od ?? "1mm"),
platedhole(i + 1, x, y, parameters.id ?? "0.8mm", parameters.od ?? "1mm"),
)
}
/** silkscreen width */
const sw = params.w - params.od - 0.4
const sh = (params.num_pins / 2 - 1) * params.p + params.od + 0.4
const sw = parameters.w - parameters.od - 0.4
const sh = (parameters.num_pins / 2 - 1) * parameters.p + parameters.od + 0.4
const silkscreenBorder: PcbSilkscreenPath = {
layer: "top",
pcb_component_id: "",
Expand All @@ -120,6 +120,6 @@ export const dip = (raw_params: {

return {
circuitJson: [...platedHoles, silkscreenBorder],
parameters: JSON.stringify(params),
parameters,
}
}
6 changes: 3 additions & 3 deletions src/fn/led.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { AnySoupElement } from "@tscircuit/soup"
import { PassiveDef, passive } from "../helpers/passive-fn"

export const led = (
params: PassiveDef,
): { circuitJson: AnySoupElement[]; parameters: string } => {
return { circuitJson: passive(params), parameters: JSON.stringify(params) }
parameters: PassiveDef,
): { circuitJson: AnySoupElement[]; parameters: any } => {
return { circuitJson: passive(parameters), parameters }
}
12 changes: 6 additions & 6 deletions src/fn/mlp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import type { z } from "zod"
export const mlp_def = base_quad_def.extend({}).transform(quadTransform)

export const mlp = (
params: z.input<typeof mlp_def>,
): { circuitJson: AnySoupElement[]; parameters: string } => {
params.legsoutside = false
if (params.thermalpad === undefined) {
params.thermalpad = true
parameters: z.input<typeof mlp_def>,
): { circuitJson: AnySoupElement[]; parameters: any } => {
parameters.legsoutside = false
if (parameters.thermalpad === undefined) {
parameters.thermalpad = true
}
return quad(params)
return quad(parameters)
}
8 changes: 4 additions & 4 deletions src/fn/ms012.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ export const ms012_def = extendSoicDef({

export const ms012 = (
raw_params: z.input<typeof ms012_def>,
): { circuitJson: AnySoupElement[]; parameters: string } => {
const params = ms012_def.parse({ ...raw_params, num_pins: 8 })
): { circuitJson: AnySoupElement[]; parameters: any } => {
const parameters = ms012_def.parse({ ...raw_params, num_pins: 8 })
return {
circuitJson: soicWithoutParsing(params),
parameters: JSON.stringify(params),
circuitJson: soicWithoutParsing(parameters),
parameters,
}
}
8 changes: 4 additions & 4 deletions src/fn/ms013.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ export const ms013_def = extendSoicDef({

export const ms013 = (
raw_params: z.input<typeof ms013_def>,
): { circuitJson: AnySoupElement[]; parameters: string } => {
const params = ms013_def.parse({ ...raw_params, num_pins: 16 })
): { circuitJson: AnySoupElement[]; parameters: any } => {
const parameters = ms013_def.parse({ ...raw_params, num_pins: 16 })
return {
circuitJson: soicWithoutParsing(params),
parameters: JSON.stringify(params),
circuitJson: soicWithoutParsing(parameters),
parameters,
}
}
12 changes: 6 additions & 6 deletions src/fn/pinrow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@ export const pinrow_def = z.object({

export const pinrow = (
raw_params: z.input<typeof pinrow_def>,
): { circuitJson: AnySoupElement[]; parameters: string } => {
const params = pinrow_def.parse(raw_params)
const { p, id, od } = params
): { circuitJson: AnySoupElement[]; parameters: any } => {
const parameters = pinrow_def.parse(raw_params)
const { p, id, od } = parameters
const holes: any[] = []
/** num_spaces */
const ns = params.num_pins - 1
const ns = parameters.num_pins - 1
const xoff = -(ns / 2) * p

for (let i = 0; i < params.num_pins; i++) {
for (let i = 0; i < parameters.num_pins; i++) {
holes.push(platedhole(i + 1, xoff + i * p, 0, id, od))
}
return { circuitJson: holes, parameters: JSON.stringify(params) }
return { circuitJson: holes, parameters }
}
8 changes: 4 additions & 4 deletions src/fn/qfn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import type { z } from "zod"
export const qfn_def = base_quad_def.extend({}).transform(quadTransform)

export const qfn = (
params: z.input<typeof qfn_def>,
): { circuitJson: AnySoupElement[]; parameters: string } => {
params.legsoutside = false
return quad(params)
parameters: z.input<typeof qfn_def>,
): { circuitJson: AnySoupElement[]; parameters: any } => {
parameters.legsoutside = false
return quad(parameters)
}
2 changes: 1 addition & 1 deletion src/fn/qfp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export const qfp_def = quad_def

export const qfp = (
raw_params: z.input<typeof quad_def>,
): { circuitJson: AnySoupElement[]; parameters: string } => {
): { circuitJson: AnySoupElement[]; parameters: any } => {
raw_params.legsoutside = true

const quad_defaults = quad_def.parse(raw_params)
Expand Down
54 changes: 27 additions & 27 deletions src/fn/quad.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,29 +109,29 @@ export const getQuadCoords = (params: {

export const quad = (
raw_params: z.input<typeof quad_def>,
): { circuitJson: AnySoupElement[]; parameters: string } => {
const params = quad_def.parse(raw_params)
): { circuitJson: AnySoupElement[]; parameters: any } => {
const parameters = quad_def.parse(raw_params)
const pads: AnySoupElement[] = []
const pin_map = getQuadPinMap(params)
const pin_map = getQuadPinMap(parameters)
/** Side pin count */
const spc = params.num_pins / 4
for (let i = 0; i < params.num_pins; i++) {
const spc = parameters.num_pins / 4
for (let i = 0; i < parameters.num_pins; i++) {
const {
x,
y,
o: orientation,
} = getQuadCoords({
pin_count: params.num_pins,
pin_count: parameters.num_pins,
pn: i + 1,
w: params.w,
h: params.h,
p: params.p ?? 0.5,
pl: params.pl,
legsoutside: params.legsoutside,
w: parameters.w,
h: parameters.h,
p: parameters.p ?? 0.5,
pl: parameters.pl,
legsoutside: parameters.legsoutside,
})

let pw = params.pw
let pl = params.pl
let pw = parameters.pw
let pl = parameters.pl
if (orientation === "vert") {
;[pw, pl] = [pl, pw]
}
Expand All @@ -140,14 +140,14 @@ export const quad = (
pads.push(rectpad(pn, x, y, pw, pl))
}

if (params.thermalpad) {
if (typeof params.thermalpad === "boolean") {
const ibw = params.p * (spc - 1) + params.pw
const ibh = params.p * (spc - 1) + params.pw
if (parameters.thermalpad) {
if (typeof parameters.thermalpad === "boolean") {
const ibw = parameters.p * (spc - 1) + parameters.pw
const ibh = parameters.p * (spc - 1) + parameters.pw
pads.push(rectpad(["thermalpad"], 0, 0, ibw, ibh))
} else {
pads.push(
rectpad(["thermalpad"], 0, 0, params.thermalpad.x, params.thermalpad.y),
rectpad(["thermalpad"], 0, 0, parameters.thermalpad.x, parameters.thermalpad.y),
)
}
}
Expand All @@ -162,15 +162,15 @@ export const quad = (
] as const) {
// const dx = Math.floor(corner_index / 2) * 2 - 1
// const dy = 1 - (corner_index % 2) * 2
const corner_x = (params.w / 2) * dx
const corner_y = (params.h / 2) * dy
const corner_x = (parameters.w / 2) * dx
const corner_y = (parameters.h / 2) * dy
let arrow: "none" | "in1" | "in2" = "none"

let arrow_x = corner_x
let arrow_y = corner_y

/** corner size */
const csz = params.pw * 2
const csz = parameters.pw * 2

if (pin_map[1] === 1 && corner === "top-left") {
arrow = "in1"
Expand All @@ -191,15 +191,15 @@ export const quad = (
}

const rotate_arrow = arrow === "in1" ? 1 : -1
if (params.legsoutside) {
const arrow_dx = arrow === "in1" ? params.pl / 2 : params.pw / 2
const arrow_dy = arrow === "in1" ? params.pw / 2 : params.pl / 2
if (parameters.legsoutside) {
const arrow_dx = arrow === "in1" ? parameters.pl / 2 : parameters.pw / 2
const arrow_dy = arrow === "in1" ? parameters.pw / 2 : parameters.pl / 2
arrow_x += arrow_dx * dx * rotate_arrow
arrow_y -= arrow_dy * dy * rotate_arrow
}

// Normal Corner
if (arrow === "none" || params.legsoutside) {
if (arrow === "none" || parameters.legsoutside) {
silkscreen_corners.push({
layer: "top",
pcb_component_id: "",
Expand All @@ -224,7 +224,7 @@ export const quad = (

// Two lines nearly forming a corner, used when the arrow needs to overlap
// the corne (QFN components where legs are inside)
if ((arrow === "in1" || arrow === "in2") && !params.legsoutside) {
if ((arrow === "in1" || arrow === "in2") && !parameters.legsoutside) {
silkscreen_corners.push(
{
layer: "top",
Expand Down Expand Up @@ -290,6 +290,6 @@ export const quad = (

return {
circuitJson: [...pads, ...silkscreen_corners],
parameters: JSON.stringify(params),
parameters,
}
}
6 changes: 3 additions & 3 deletions src/fn/res.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { AnySoupElement } from "@tscircuit/soup"
import { passive, type PassiveDef } from "../helpers/passive-fn"

export const res = (
params: PassiveDef,
): { circuitJson: AnySoupElement[]; parameters: string } => {
return { circuitJson: passive(params), parameters: JSON.stringify(params) }
parameters: PassiveDef,
): { circuitJson: AnySoupElement[]; parameters: any } => {
return { circuitJson: passive(parameters), parameters }
}
Loading

0 comments on commit 6e741a8

Please sign in to comment.