From fdc88a753f760febeca4df9bd5f192522367aa12 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 7 Apr 2026 12:50:02 +0100 Subject: [PATCH] perf(plugins): slim boundary canary target --- scripts/check-extension-package-tsc-boundary.mjs | 12 ++++++++++-- src/plugins/contracts/rootdir-boundary-canary.ts | 1 + .../check-extension-package-tsc-boundary.test.ts | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 src/plugins/contracts/rootdir-boundary-canary.ts diff --git a/scripts/check-extension-package-tsc-boundary.mjs b/scripts/check-extension-package-tsc-boundary.mjs index 5a1dcc2ddb1..b932994f421 100644 --- a/scripts/check-extension-package-tsc-boundary.mjs +++ b/scripts/check-extension-package-tsc-boundary.mjs @@ -24,6 +24,9 @@ const prepareBoundaryArtifactsBin = resolve( const extensionPackageBoundaryBaseConfig = "../tsconfig.package-boundary.base.json"; const FAILURE_OUTPUT_TAIL_LINES = 40; const COMPILE_INPUT_EXTENSIONS = new Set([".ts", ".tsx", ".mts", ".cts", ".js", ".mjs", ".json"]); +const ROOTDIR_BOUNDARY_CANARY_IMPORT_PATH = + "../../src/plugins/contracts/rootdir-boundary-canary.ts"; +const ROOTDIR_BOUNDARY_CANARY_OUTPUT_HINT = "src/plugins/contracts/rootdir-boundary-canary.ts"; function parseMode(argv) { const modeArg = argv.find((arg) => arg.startsWith("--mode=")); @@ -636,7 +639,12 @@ async function runCanaryCheck(extensionIds) { try { writeFileSync( canaryPath, - 'import * as foo from "../../src/cli/acp-cli.ts";\nvoid foo;\nexport {};\n', + [ + `import { ROOTDIR_BOUNDARY_CANARY } from "${ROOTDIR_BOUNDARY_CANARY_IMPORT_PATH}";`, + "void ROOTDIR_BOUNDARY_CANARY;", + "export {};", + "", + ].join("\n"), "utf8", ); writeFileSync( @@ -666,7 +674,7 @@ async function runCanaryCheck(extensionIds) { error instanceof Error && typeof error.fullOutput === "string" ? error.fullOutput : String(error); - if (!output.includes("TS6059") || !output.includes("src/cli/acp-cli.ts")) { + if (!output.includes("TS6059") || !output.includes(ROOTDIR_BOUNDARY_CANARY_OUTPUT_HINT)) { throw error; } } finally { diff --git a/src/plugins/contracts/rootdir-boundary-canary.ts b/src/plugins/contracts/rootdir-boundary-canary.ts new file mode 100644 index 00000000000..3528633b80a --- /dev/null +++ b/src/plugins/contracts/rootdir-boundary-canary.ts @@ -0,0 +1 @@ +export const ROOTDIR_BOUNDARY_CANARY = true; diff --git a/test/scripts/check-extension-package-tsc-boundary.test.ts b/test/scripts/check-extension-package-tsc-boundary.test.ts index 21c7354071f..330c90c4329 100644 --- a/test/scripts/check-extension-package-tsc-boundary.test.ts +++ b/test/scripts/check-extension-package-tsc-boundary.test.ts @@ -299,7 +299,7 @@ describe("check-extension-package-tsc-boundary", () => { [ "--eval", [ - "console.log('src/cli/acp-cli.ts');", + "console.log('src/plugins/contracts/rootdir-boundary-canary.ts');", "for (let index = 1; index <= 45; index += 1) console.log(`stdout ${index}`);", "console.error('TS6059');", "process.exit(2);", @@ -309,7 +309,7 @@ describe("check-extension-package-tsc-boundary", () => { ), ).rejects.toMatchObject({ message: expect.stringContaining("[... 6 earlier lines omitted ...]"), - fullOutput: expect.stringContaining("src/cli/acp-cli.ts"), + fullOutput: expect.stringContaining("src/plugins/contracts/rootdir-boundary-canary.ts"), kind: "nonzero-exit", elapsedMs: expect.any(Number), });