From 9a61b1e361c83aaf8d7dd2c9669ef6ac8433342a Mon Sep 17 00:00:00 2001 From: Sarah Gerrard Date: Sun, 18 Oct 2026 18:13:22 -0700 Subject: [PATCH] perf: split jsonc-parser edit and format out of project-context --- .changeset/split-jsonc-parser-edit.md | 5 +++++ packages/intent/src/setup/workspace-patterns.ts | 4 ++-- packages/intent/tsdown.config.ts | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 .changeset/split-jsonc-parser-edit.md diff --git a/.changeset/split-jsonc-parser-edit.md b/.changeset/split-jsonc-parser-edit.md new file mode 100644 index 00000000..2893821e --- /dev/null +++ b/.changeset/split-jsonc-parser-edit.md @@ -0,0 +1,5 @@ +--- +'@tanstack/intent': patch +--- + +Keep `jsonc-parser`'s editing and formatting modules out of the shared `project-context` chunk so read-only commands (`intent list`, `intent load`, `intent stale`, and `intent validate`) do not load JSONC edit and format code on startup; behavior does not change. diff --git a/packages/intent/src/setup/workspace-patterns.ts b/packages/intent/src/setup/workspace-patterns.ts index 8e9ef065..2979f380 100644 --- a/packages/intent/src/setup/workspace-patterns.ts +++ b/packages/intent/src/setup/workspace-patterns.ts @@ -1,10 +1,10 @@ import { existsSync, lstatSync, readFileSync, readdirSync } from 'node:fs' import { dirname, join } from 'node:path' -import { parse as parseJsonc } from 'jsonc-parser' +import { parse as parseJsonc } from 'jsonc-parser/lib/esm/main.js' import { parse as parseYaml } from 'yaml' import { hasAnySkillFile } from '../shared/utils.js' import { readPackageJson } from '../core/package-json.js' -import type { ParseError } from 'jsonc-parser' +import type { ParseError } from 'jsonc-parser/lib/esm/main.js' import type { IntentFsCache } from '../discovery/fs-cache.js' function normalizeWorkspacePattern(pattern: string): string { diff --git a/packages/intent/tsdown.config.ts b/packages/intent/tsdown.config.ts index 8e139e10..d1f4df09 100644 --- a/packages/intent/tsdown.config.ts +++ b/packages/intent/tsdown.config.ts @@ -61,6 +61,12 @@ export default defineConfig({ 'jsonc-parser': fileURLToPath( new URL('./node_modules/jsonc-parser/lib/esm/main.js', import.meta.url), ), + 'jsonc-parser/lib/esm/main.js': fileURLToPath( + new URL( + './node_modules/jsonc-parser/lib/esm/impl/parser.js', + import.meta.url, + ), + ), // yaml's `node` export condition is a CommonJS build that rolldown cannot // tree-shake; point at the ES module build its `default` condition serves. yaml: fileURLToPath(