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: {