From 4881fc445f7ec8837e2978843b4372560e1045b4 Mon Sep 17 00:00:00 2001 From: nardeenal Date: Wed, 9 Sep 2026 00:20:14 +0300 Subject: [PATCH 1/4] fix: preserve pin labels when hiding reference designators --- src/helpers/apply-norefdes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/apply-norefdes.ts b/src/helpers/apply-norefdes.ts index 9fa459b73..baf6e1a44 100644 --- a/src/helpers/apply-norefdes.ts +++ b/src/helpers/apply-norefdes.ts @@ -5,7 +5,7 @@ export const applyNoRefDes = ( parameters: any, ): AnyCircuitElement[] => { const refs = elements.filter( - (el) => el.type === "pcb_silkscreen_text", + (el) => el.type === "pcb_silkscreen_text" && el.text === "{REF}", ) as Array if (refs.length === 0) return elements From d2b39d2cf2895cc3848547c005f794f912be344d Mon Sep 17 00:00:00 2001 From: nardeenal Date: Wed, 9 Sep 2026 00:22:31 +0300 Subject: [PATCH 2/4] test: preserve stamp footprint pin labels with norefdes --- tests/norefdes.test.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/norefdes.test.ts diff --git a/tests/norefdes.test.ts b/tests/norefdes.test.ts new file mode 100644 index 000000000..fc9b66533 --- /dev/null +++ b/tests/norefdes.test.ts @@ -0,0 +1,31 @@ +import { expect, test } from "bun:test" +import { convertCircuitJsonToPcbSvg } from "circuit-to-svg" +import { fp } from "../src/footprinter" + +for (const footprint of [ + "stampboard_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels", + "stampreceiver_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels", +]) { + test(`${footprint} norefdes preserves pin labels`, () => { + const original = fp.string(footprint).circuitJson() + const circuit = fp.string(`${footprint}_norefdes`).circuitJson() + const originalTexts = original.filter( + (element) => element.type === "pcb_silkscreen_text", + ) + const texts = circuit.filter( + (element) => element.type === "pcb_silkscreen_text", + ) + + expect(originalTexts.some((element) => element.text === "{REF}")).toBe(true) + expect(texts.map((element) => element.text)).toEqual( + originalTexts.map((element) => + element.text === "{REF}" ? "" : element.text, + ), + ) + expect(texts.filter((element) => element.text !== "")).toHaveLength(6) + expect(convertCircuitJsonToPcbSvg(circuit)).toMatchSvgSnapshot( + import.meta.path, + `${footprint}_norefdes`, + ) + }) +} From 4a76b25a0c9ea64e0db1c4b65d1c830ecf67fb9c Mon Sep 17 00:00:00 2001 From: nardeenal Date: Wed, 9 Sep 2026 00:24:33 +0300 Subject: [PATCH 3/4] test: add stampboard pin label snapshot --- ...top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 tests/__snapshots__/stampboard_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg diff --git a/tests/__snapshots__/stampboard_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg b/tests/__snapshots__/stampboard_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg new file mode 100644 index 000000000..0f9412480 --- /dev/null +++ b/tests/__snapshots__/stampboard_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg @@ -0,0 +1 @@ +pin4pin5pin6pin1pin2pin3 From 93d7b03b7882d44448ec2d23c397c63937a62eb0 Mon Sep 17 00:00:00 2001 From: nardeenal Date: Wed, 9 Sep 2026 00:26:40 +0300 Subject: [PATCH 4/4] test: add stampreceiver pin label snapshot --- ...top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 tests/__snapshots__/stampreceiver_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg diff --git a/tests/__snapshots__/stampreceiver_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg b/tests/__snapshots__/stampreceiver_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg new file mode 100644 index 000000000..8b36fafa4 --- /dev/null +++ b/tests/__snapshots__/stampreceiver_left3_right3_top0_bottom0_w21mm_p2.54mm_silkscreenlabels_norefdes.snap.svg @@ -0,0 +1 @@ +pin1pin2pin3pin4pin5pin6