From e80e335e7e488b46d5fc20ba67143e5b632517d9 Mon Sep 17 00:00:00 2001 From: Corbin Crutchley Date: Thu, 14 May 2026 03:23:34 -0400 Subject: [PATCH 1/2] chore: update tsconfig --- packages/compiler/tsconfig.app.json | 2 +- packages/compiler/tsconfig.config.json | 2 +- packages/compiler/tsconfig.spec.json | 2 +- packages/config/tsconfig.json | 11 +++++++++-- packages/language-server/tsconfig.json | 4 ++-- .../language-service/src/language-plugin.ts | 7 +++++-- packages/language-service/tsconfig.json | 2 +- packages/parser/tsconfig.json | 2 +- packages/prettier-plugin/tsconfig.json | 2 +- packages/typescript-plugin/tsconfig.json | 4 ++-- packages/vscode/tsconfig.json | 4 ++-- tsconfig.base.json | 19 ++----------------- 12 files changed, 28 insertions(+), 33 deletions(-) diff --git a/packages/compiler/tsconfig.app.json b/packages/compiler/tsconfig.app.json index 564a599..7ee67f9 100644 --- a/packages/compiler/tsconfig.app.json +++ b/packages/compiler/tsconfig.app.json @@ -1,4 +1,4 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "include": ["src"] } diff --git a/packages/compiler/tsconfig.config.json b/packages/compiler/tsconfig.config.json index 0100358..e82a91d 100644 --- a/packages/compiler/tsconfig.config.json +++ b/packages/compiler/tsconfig.config.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "compilerOptions": { "baseUrl": "." }, diff --git a/packages/compiler/tsconfig.spec.json b/packages/compiler/tsconfig.spec.json index 909b092..05fb679 100644 --- a/packages/compiler/tsconfig.spec.json +++ b/packages/compiler/tsconfig.spec.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "compilerOptions": { "baseUrl": "." }, diff --git a/packages/config/tsconfig.json b/packages/config/tsconfig.json index a955ab0..d3ee015 100644 --- a/packages/config/tsconfig.json +++ b/packages/config/tsconfig.json @@ -2,13 +2,20 @@ "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { "target": "ESNext", + "lib": ["ES2021"], + "types": ["node"], "module": "NodeNext", + "sourceMap": true, + "composite": true, + "declaration": true, "strict": true, - "noEmit": true, "verbatimModuleSyntax": true, "skipLibCheck": true, "allowImportingTsExtensions": true, - "erasableSyntaxOnly": true + "rewriteRelativeImportExtensions": true, + "erasableSyntaxOnly": true, + "noUnusedLocals": true, + "noUnusedParameters": true }, "include": ["tsignore.ts", "eslint-preset.js", "eslint.config.mjs"] } diff --git a/packages/language-server/tsconfig.json b/packages/language-server/tsconfig.json index 3036f8e..ca69544 100644 --- a/packages/language-server/tsconfig.json +++ b/packages/language-server/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "compilerOptions": { "outDir": "lib", "rootDir": "src", @@ -17,4 +17,4 @@ "lib", "test" ] -} \ No newline at end of file +} diff --git a/packages/language-service/src/language-plugin.ts b/packages/language-service/src/language-plugin.ts index f0713e0..e0364cc 100644 --- a/packages/language-service/src/language-plugin.ts +++ b/packages/language-service/src/language-plugin.ts @@ -1,5 +1,5 @@ /// -import { CodeMapping, type VirtualCode } from "@volar/language-core"; +import type { CodeMapping, VirtualCode } from "@volar/language-core"; import { type LanguagePlugin } from "@volar/language-service"; import { getRootBlocks, @@ -99,7 +99,10 @@ export class TempblotVirtualCode implements VirtualCode { // Reuse in custom language service plugin rootDocument: ParsedRoot; - constructor(public snapshot: ts.IScriptSnapshot) { + snapshot: ts.IScriptSnapshot; + + constructor(snapshot: ts.IScriptSnapshot) { + this.snapshot = snapshot; this.mappings = [ { sourceOffsets: [0], diff --git a/packages/language-service/tsconfig.json b/packages/language-service/tsconfig.json index 3df0bd9..97fc79b 100644 --- a/packages/language-service/tsconfig.json +++ b/packages/language-service/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "include": ["src"], "references": [{ "path": "../parser/tsconfig.json" }], diff --git a/packages/parser/tsconfig.json b/packages/parser/tsconfig.json index 8c97071..1223db8 100644 --- a/packages/parser/tsconfig.json +++ b/packages/parser/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "include": ["src"], "compilerOptions": { "declaration": true, diff --git a/packages/prettier-plugin/tsconfig.json b/packages/prettier-plugin/tsconfig.json index d921b32..8d69d41 100644 --- a/packages/prettier-plugin/tsconfig.json +++ b/packages/prettier-plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "include": ["src"], "compilerOptions": { "declaration": true, diff --git a/packages/typescript-plugin/tsconfig.json b/packages/typescript-plugin/tsconfig.json index baff0a4..8f2588e 100644 --- a/packages/typescript-plugin/tsconfig.json +++ b/packages/typescript-plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "include": ["lib"], "references": [{"path": "../language-service/tsconfig.json"}], "compilerOptions": { @@ -9,4 +9,4 @@ "outDir": "types", "rootDir": "lib" } -} \ No newline at end of file +} diff --git a/packages/vscode/tsconfig.json b/packages/vscode/tsconfig.json index 38bf661..a4b3594 100644 --- a/packages/vscode/tsconfig.json +++ b/packages/vscode/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "tempblot-config/tsconfig.json", "compilerOptions": { "outDir": "out", "rootDir": "src", @@ -7,4 +7,4 @@ "include": [ "src", ] -} \ No newline at end of file +} diff --git a/tsconfig.base.json b/tsconfig.base.json index 6f95c3a..180695a 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,19 +1,4 @@ { - "compilerOptions": { - "target": "ESNext", - "lib": [ - "ES2021", - ], - "types": ["node"], - "module": "NodeNext", - "sourceMap": true, - "composite": true, - "declaration": true, - "strict": true, - "skipLibCheck": true, - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "noUnusedLocals": true, - "noUnusedParameters": true - }, + "extends": "./packages/config/tsconfig.json", + "files": [] } -- 2.51.2 From 9e3b572f172daee69bebacd15591276108c4e2db Mon Sep 17 00:00:00 2001 From: Corbin Crutchley Date: Thu, 14 May 2026 03:29:04 -0400 Subject: [PATCH 2/2] chore: handle build spec split --- packages/language-service/tsconfig.json | 2 +- packages/parser/eslint.config.mjs | 4 +--- packages/parser/package.json | 6 +++--- packages/parser/tsconfig.build.json | 9 +++++++++ packages/parser/tsconfig.json | 12 +++++------- packages/parser/tsconfig.spec.json | 8 ++++++++ packages/parser/vite.config.ts | 2 +- packages/prettier-plugin/eslint.config.mjs | 4 +--- packages/prettier-plugin/package.json | 4 ++-- packages/prettier-plugin/tsconfig.build.json | 10 ++++++++++ packages/prettier-plugin/tsconfig.json | 13 +++++-------- packages/prettier-plugin/tsconfig.spec.json | 8 ++++++++ packages/prettier-plugin/vite.config.ts | 2 +- 13 files changed, 55 insertions(+), 29 deletions(-) create mode 100644 packages/parser/tsconfig.build.json create mode 100644 packages/parser/tsconfig.spec.json create mode 100644 packages/prettier-plugin/tsconfig.build.json create mode 100644 packages/prettier-plugin/tsconfig.spec.json diff --git a/packages/language-service/tsconfig.json b/packages/language-service/tsconfig.json index 97fc79b..a99a88d 100644 --- a/packages/language-service/tsconfig.json +++ b/packages/language-service/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "tempblot-config/tsconfig.json", "include": ["src"], - "references": [{ "path": "../parser/tsconfig.json" }], + "references": [{ "path": "../parser/tsconfig.build.json" }], "compilerOptions": { "declaration": true, diff --git a/packages/parser/eslint.config.mjs b/packages/parser/eslint.config.mjs index b3931d8..7eb16fa 100644 --- a/packages/parser/eslint.config.mjs +++ b/packages/parser/eslint.config.mjs @@ -6,9 +6,7 @@ export default [ files: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'], languageOptions: { parserOptions: { - projectService: { - allowDefaultProject: ['tests/*.ts', 'vite.config.ts'], - }, + projectService: true, tsconfigRootDir: import.meta.dirname, }, }, diff --git a/packages/parser/package.json b/packages/parser/package.json index ed6e903..1e5e56c 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -14,10 +14,10 @@ "lib" ], "scripts": { - "build": "tsc --build", - "prepack": "tsc --build --clean && tsc --build", + "build": "tsc --build tsconfig.build.json", + "prepack": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.json", "test:lib": "vitest", - "test:types": "tsc --noEmit", + "test:types": "tsc --noEmit --project tsconfig.spec.json", "test:eslint": "eslint ." }, "devDependencies": { diff --git a/packages/parser/tsconfig.build.json b/packages/parser/tsconfig.build.json new file mode 100644 index 0000000..1223db8 --- /dev/null +++ b/packages/parser/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "tempblot-config/tsconfig.json", + "include": ["src"], + "compilerOptions": { + "declaration": true, + "outDir": "lib", + "rootDir": "src" + } +} diff --git a/packages/parser/tsconfig.json b/packages/parser/tsconfig.json index 1223db8..dcb77f1 100644 --- a/packages/parser/tsconfig.json +++ b/packages/parser/tsconfig.json @@ -1,9 +1,7 @@ { - "extends": "tempblot-config/tsconfig.json", - "include": ["src"], - "compilerOptions": { - "declaration": true, - "outDir": "lib", - "rootDir": "src" - } + "files": [], + "references": [ + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.spec.json" } + ] } diff --git a/packages/parser/tsconfig.spec.json b/packages/parser/tsconfig.spec.json new file mode 100644 index 0000000..10c6412 --- /dev/null +++ b/packages/parser/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "tempblot-config/tsconfig.json", + "include": ["src", "tests", "vite.config.ts"], + "compilerOptions": { + "noEmit": true, + "resolveJsonModule": true + } +} diff --git a/packages/parser/vite.config.ts b/packages/parser/vite.config.ts index e3b748f..67c8c62 100644 --- a/packages/parser/vite.config.ts +++ b/packages/parser/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config' -import packageJson from './package.json' +import packageJson from './package.json' with { type: 'json' } export default defineConfig(({ mode }) => ({ test: { diff --git a/packages/prettier-plugin/eslint.config.mjs b/packages/prettier-plugin/eslint.config.mjs index b3931d8..7eb16fa 100644 --- a/packages/prettier-plugin/eslint.config.mjs +++ b/packages/prettier-plugin/eslint.config.mjs @@ -6,9 +6,7 @@ export default [ files: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'], languageOptions: { parserOptions: { - projectService: { - allowDefaultProject: ['tests/*.ts', 'vite.config.ts'], - }, + projectService: true, tsconfigRootDir: import.meta.dirname, }, }, diff --git a/packages/prettier-plugin/package.json b/packages/prettier-plugin/package.json index bb510e5..7709185 100644 --- a/packages/prettier-plugin/package.json +++ b/packages/prettier-plugin/package.json @@ -14,8 +14,8 @@ "lib" ], "scripts": { - "build": "tsc --build", - "prepack": "tsc --build --clean && tsc --build", + "build": "tsc --build tsconfig.build.json", + "prepack": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.json", "test:lib": "vitest", "test:eslint": "eslint ." }, diff --git a/packages/prettier-plugin/tsconfig.build.json b/packages/prettier-plugin/tsconfig.build.json new file mode 100644 index 0000000..0afa833 --- /dev/null +++ b/packages/prettier-plugin/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "tempblot-config/tsconfig.json", + "include": ["src"], + "references": [{ "path": "../parser/tsconfig.build.json" }], + "compilerOptions": { + "declaration": true, + "outDir": "lib", + "rootDir": "src" + } +} diff --git a/packages/prettier-plugin/tsconfig.json b/packages/prettier-plugin/tsconfig.json index 8d69d41..dcb77f1 100644 --- a/packages/prettier-plugin/tsconfig.json +++ b/packages/prettier-plugin/tsconfig.json @@ -1,10 +1,7 @@ { - "extends": "tempblot-config/tsconfig.json", - "include": ["src"], - "compilerOptions": { - "declaration": true, - "outDir": "lib", - "rootDir": "src" - }, - "references": [{ "path": "../parser" }] + "files": [], + "references": [ + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.spec.json" } + ] } diff --git a/packages/prettier-plugin/tsconfig.spec.json b/packages/prettier-plugin/tsconfig.spec.json new file mode 100644 index 0000000..10c6412 --- /dev/null +++ b/packages/prettier-plugin/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "tempblot-config/tsconfig.json", + "include": ["src", "tests", "vite.config.ts"], + "compilerOptions": { + "noEmit": true, + "resolveJsonModule": true + } +} diff --git a/packages/prettier-plugin/vite.config.ts b/packages/prettier-plugin/vite.config.ts index e3b748f..67c8c62 100644 --- a/packages/prettier-plugin/vite.config.ts +++ b/packages/prettier-plugin/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config' -import packageJson from './package.json' +import packageJson from './package.json' with { type: 'json' } export default defineConfig(({ mode }) => ({ test: { -- 2.51.2