diff --git a/algos/infinite-grid-ijump-astar/tests/fixtures/get-debug-svg.ts b/algos/infinite-grid-ijump-astar/tests/fixtures/get-debug-svg.ts index ca9ecc3..5fed3b1 100644 --- a/algos/infinite-grid-ijump-astar/tests/fixtures/get-debug-svg.ts +++ b/algos/infinite-grid-ijump-astar/tests/fixtures/get-debug-svg.ts @@ -1,14 +1,9 @@ -import { getSimpleRouteJson, type SimplifiedPcbTrace } from "solver-utils" -import { test, expect } from "bun:test" -import { circuitJsonToPcbSvg } from "circuit-to-svg" -import { Circuit } from "@tscircuit/core" import { transformPCBElements } from "@tscircuit/soup-util" -import { translate } from "transformation-matrix" -import type { - AnyCircuitElement, - AnyCircuitElement as AnySoupElement, -} from "circuit-json" import type { GeneralizedAstarAutorouter } from "algos/infinite-grid-ijump-astar/v2/lib/GeneralizedAstar" +import type { AnyCircuitElement } from "circuit-json" +import { convertCircuitJsonToPcbSvg } from "circuit-to-svg" +import { type SimplifiedPcbTrace } from "solver-utils" +import { translate } from "transformation-matrix" export const getDebugSvg = ({ inputCircuitJson, @@ -20,7 +15,7 @@ export const getDebugSvg = ({ }: { inputCircuitJson: AnyCircuitElement[] autorouter: GeneralizedAstarAutorouter - solution?: AnySoupElement[] | SimplifiedPcbTrace[] + solution?: AnyCircuitElement[] | SimplifiedPcbTrace[] rowHeight?: number colWidth?: number colCount?: number @@ -79,5 +74,5 @@ export const getDebugSvg = ({ ) as any), ) - return circuitJsonToPcbSvg(aggCircuitJson) + return convertCircuitJsonToPcbSvg(aggCircuitJson as any) } diff --git a/algos/infinite-grid-ijump-astar/tests/get-debug-svg.test.tsx b/algos/infinite-grid-ijump-astar/tests/get-debug-svg.test.tsx index 0dbc8bf..6b846ce 100644 --- a/algos/infinite-grid-ijump-astar/tests/get-debug-svg.test.tsx +++ b/algos/infinite-grid-ijump-astar/tests/get-debug-svg.test.tsx @@ -1,11 +1,8 @@ +import { Circuit } from "@tscircuit/core" +import { expect, test } from "bun:test" +import type { AnyCircuitElement } from "circuit-json" import { getSimpleRouteJson } from "solver-utils" -import { test, expect } from "bun:test" -import { circuitJsonToPcbSvg } from "circuit-to-svg" import { IJumpAutorouter } from "../v2" -import { Circuit } from "@tscircuit/core" -import { transformPCBElements } from "@tscircuit/soup-util" -import { translate } from "transformation-matrix" -import type { AnyCircuitElement as AnySoupElement } from "circuit-json" import { getDebugSvg } from "./fixtures/get-debug-svg" test("ijump-astar: intersection with margin", () => { @@ -21,7 +18,7 @@ test("ijump-astar: intersection with margin", () => { const inputCircuitJson = circuit.getCircuitJson() - const input = getSimpleRouteJson(inputCircuitJson) + const input = getSimpleRouteJson(inputCircuitJson as AnyCircuitElement[]) const autorouter = new IJumpAutorouter({ input, diff --git a/algos/infinite-grid-ijump-astar/tests/multimargin-bga.test.tsx b/algos/infinite-grid-ijump-astar/tests/multimargin-bga.test.tsx index 3cfa8c9..78e8f34 100644 --- a/algos/infinite-grid-ijump-astar/tests/multimargin-bga.test.tsx +++ b/algos/infinite-grid-ijump-astar/tests/multimargin-bga.test.tsx @@ -1,13 +1,9 @@ -import { getSimpleRouteJson } from "solver-utils" -import { test, expect } from "bun:test" -import { circuitJsonToPcbSvg } from "circuit-to-svg" -import { IJumpAutorouter } from "../v2" import { Circuit } from "@tscircuit/core" -import { transformPCBElements } from "@tscircuit/soup-util" -import { translate } from "transformation-matrix" -import type { AnyCircuitElement as AnySoupElement } from "circuit-json" -import { getDebugSvg } from "./fixtures/get-debug-svg" +import { expect, test } from "bun:test" +import type { AnyCircuitElement } from "circuit-json" +import { getSimpleRouteJson } from "solver-utils" import { IJumpMultiMarginAutorouter } from "../v2/lib/IJumpMultiMarginAutorouter" +import { getDebugSvg } from "./fixtures/get-debug-svg" const OneByOnePad = (props: { name: string; pcbX?: number; pcbY?: number }) => ( @@ -36,7 +32,7 @@ test("multimargin-ijump-astar: bga9", () => { const inputCircuitJson = circuit.getCircuitJson() - const input = getSimpleRouteJson(inputCircuitJson) + const input = getSimpleRouteJson(inputCircuitJson as AnyCircuitElement[]) const autorouter = new IJumpMultiMarginAutorouter({ input, diff --git a/algos/multi-layer-ijump/tests/__snapshots__/multi-layer-keyboard7.snap.svg b/algos/multi-layer-ijump/tests/__snapshots__/multi-layer-keyboard7.snap.svg index a6a1b61..039ff52 100644 --- a/algos/multi-layer-ijump/tests/__snapshots__/multi-layer-keyboard7.snap.svg +++ b/algos/multi-layer-ijump/tests/__snapshots__/multi-layer-keyboard7.snap.svg @@ -10,4 +10,4 @@ .pcb-silkscreen-top { stroke: #f2eda1; } .pcb-silkscreen-bottom { stroke: #f2eda1; } .pcb-silkscreen-text { fill: #f2eda1; } - \ No newline at end of file + \ No newline at end of file diff --git a/algos/multi-layer-ijump/tests/multi-layer-keyboard2.test.tsx b/algos/multi-layer-ijump/tests/multi-layer-keyboard2.test.tsx index 5a95a85..585e2ad 100644 --- a/algos/multi-layer-ijump/tests/multi-layer-keyboard2.test.tsx +++ b/algos/multi-layer-ijump/tests/multi-layer-keyboard2.test.tsx @@ -1,8 +1,8 @@ -import { getSimpleRouteJson } from "solver-utils" import { getKeyboardGenerator } from "autorouting-dataset/lib/generators/keyboards" -import { test, expect } from "bun:test" +import { expect, test } from "bun:test" +import { convertCircuitJsonToPcbSvg } from "circuit-to-svg" +import { getSimpleRouteJson } from "solver-utils" import { MultilayerIjump } from "../MultilayerIjump" -import { circuitJsonToPcbSvg } from "circuit-to-svg" test("multi-layer ijump keyboard", async () => { const soup = await getKeyboardGenerator().getExample({ seed: 2 }) @@ -15,7 +15,7 @@ test("multi-layer ijump keyboard", async () => { const result = autorouter.solveAndMapToTraces() - expect(circuitJsonToPcbSvg(soup.concat(result as any))).toMatchSvgSnapshot( - import.meta.path, - ) + expect( + convertCircuitJsonToPcbSvg(soup.concat(result as any) as any), + ).toMatchSvgSnapshot(import.meta.path) }) diff --git a/algos/multi-layer-ijump/tests/multi-layer-keyboard7.test.tsx b/algos/multi-layer-ijump/tests/multi-layer-keyboard7.test.tsx index 962a305..5d69d23 100644 --- a/algos/multi-layer-ijump/tests/multi-layer-keyboard7.test.tsx +++ b/algos/multi-layer-ijump/tests/multi-layer-keyboard7.test.tsx @@ -1,9 +1,9 @@ -import { getSimpleRouteJson } from "solver-utils" import { getKeyboardGenerator } from "autorouting-dataset/lib/generators/keyboards" -import { test, expect } from "bun:test" -import { MultilayerIjump } from "../MultilayerIjump" -import { circuitJsonToPcbSvg } from "circuit-to-svg" +import { expect, test } from "bun:test" import { getFullConnectivityMapFromCircuitJson } from "circuit-json-to-connectivity-map" +import { convertCircuitJsonToPcbSvg } from "circuit-to-svg" +import { getSimpleRouteJson } from "solver-utils" +import { MultilayerIjump } from "../MultilayerIjump" test("multi-layer ijump keyboard", async () => { const soup = await getKeyboardGenerator().getExample({ seed: 7 }) @@ -18,7 +18,7 @@ test("multi-layer ijump keyboard", async () => { const result = autorouter.solveAndMapToTraces() - expect(circuitJsonToPcbSvg(soup.concat(result as any))).toMatchSvgSnapshot( - import.meta.path, - ) + expect( + convertCircuitJsonToPcbSvg(soup.concat(result as any) as any), + ).toMatchSvgSnapshot(import.meta.path) }) diff --git a/algos/multi-layer-ijump/tests/same-net-many-pads.test.tsx b/algos/multi-layer-ijump/tests/same-net-many-pads.test.tsx index 1cb7256..e82b5ba 100644 --- a/algos/multi-layer-ijump/tests/same-net-many-pads.test.tsx +++ b/algos/multi-layer-ijump/tests/same-net-many-pads.test.tsx @@ -1,13 +1,9 @@ -import { getSimpleRouteJson } from "solver-utils" -import { test, expect } from "bun:test" -import { circuitJsonToPcbSvg } from "circuit-to-svg" import { Circuit } from "@tscircuit/core" -import { transformPCBElements } from "@tscircuit/soup-util" -import { translate } from "transformation-matrix" -import type { AnyCircuitElement as AnySoupElement } from "circuit-json" -import { getDebugSvg } from "../../infinite-grid-ijump-astar/tests/fixtures/get-debug-svg" -import { MultilayerIjump } from "../MultilayerIjump" +import { expect, test } from "bun:test" import { getFullConnectivityMapFromCircuitJson } from "circuit-json-to-connectivity-map" +import { convertCircuitJsonToPcbSvg } from "circuit-to-svg" +import { getSimpleRouteJson } from "solver-utils" +import { MultilayerIjump } from "../MultilayerIjump" test("multimargin-ijump-astar simple", () => { const circuit = new Circuit() @@ -29,15 +25,15 @@ test("multimargin-ijump-astar simple", () => { .pin1`} to={`.R0 > .pin2`} /> {Array.from({ length: 9 }).map((_, i) => [ .pin1`} to={`.R${i + 1} > .pin1`} />, .pin2`} to={`.R${i + 1} > .pin2`} @@ -66,8 +62,8 @@ test("multimargin-ijump-astar simple", () => { const solution = autorouter.solveAndMapToTraces() expect( - circuitJsonToPcbSvg( - inputCircuitJson.concat(solution as any), + convertCircuitJsonToPcbSvg( + inputCircuitJson.concat(solution as any) as any, // .map((a) => (a.type === "pcb_smtpad" ? { ...a, layer: "bottom" } : a)), ), ).toMatchSvgSnapshot(import.meta.path) diff --git a/bun.lockb b/bun.lockb index 1e14dbc..6abc2d3 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/module/lib/generator-utils/renderCircuitToSoup.ts b/module/lib/generator-utils/renderCircuitToSoup.ts index 35fd5a9..d40042a 100644 --- a/module/lib/generator-utils/renderCircuitToSoup.ts +++ b/module/lib/generator-utils/renderCircuitToSoup.ts @@ -1,11 +1,10 @@ -import type { AnyCircuitElement as AnySoupElement } from "circuit-json" -import { createRoot } from "@tscircuit/react-fiber" -import { createProjectBuilder } from "@tscircuit/builder" +import { Circuit } from "@tscircuit/core" +import type { AnyCircuitElement } from "circuit-json" -export const renderCircuitToSoup = ( +export const renderCircuitToSoup = async ( circuitReact: any, -): Promise => { - const project = createProjectBuilder() - - return createRoot().render(circuitReact, project) as any +): Promise => { + const circuit = new Circuit() + circuit.add(circuitReact) + return circuit.getCircuitJson() as AnyCircuitElement[] } diff --git a/package.json b/package.json index a99e867..5ad6a12 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,7 @@ "devDependencies": { "@biomejs/biome": "^1.8.3", "@timohausmann/quadtree-ts": "^2.2.2", - "@tscircuit/builder": "1.11.2", - "@tscircuit/core": "^0.0.107", + "@tscircuit/core": "^0.0.125", "@tscircuit/pcb-viewer": "1.4.5", "@tscircuit/props": "^0.0.63", "@tscircuit/soup": "^0.0.68", @@ -53,7 +52,7 @@ "@dagrejs/graphlib": "^2.2.3", "@tscircuit/checks": "0.0.26", "@tscircuit/math-utils": "^0.0.4", - "circuit-json": "^0.0.85", + "circuit-json": "^0.0.86", "circuit-json-to-connectivity-map": "^0.0.17", "commander": "^12.1.0", "kleur": "^4.1.5", diff --git a/tsconfig.json b/tsconfig.json index 8e47471..64b5107 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -33,5 +33,6 @@ "server": ["./module/lib/server"], "algos/*": ["./algos/*"] } - } + }, + "exclude": ["node_modules"] }