diff --git a/package.json b/package.json index 7d936ee9..42730067 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "pg:react": "pnpm playground:react", "build": "pnpm build:dts && node scripts/build.mjs", "build:dts": "pnpm --filter \"@tmagic/cli\" build && tsc -p tsconfig.build-browser.json && vue-tsc --declaration --emitDeclarationOnly --project tsconfig.build-vue.json && rolldown -c rolldown.dts.config.mjs && rimraf temp", - "check:type": "tsc --incremental --noEmit -p tsconfig.check.json && vue-tsc --noEmit -p tsconfig.check-vue.json", + "check:type": "node scripts/check-type.mjs", "build:playground": "pnpm --filter \"runtime-vue\" build && pnpm --filter \"tmagic-playground\" build", "docs:dev": "vitepress dev docs", "docs:serve": "vitepress serve docs", diff --git a/scripts/check-type.mjs b/scripts/check-type.mjs new file mode 100644 index 00000000..a8005b0b --- /dev/null +++ b/scripts/check-type.mjs @@ -0,0 +1,22 @@ +import { spawn } from 'node:child_process'; + +const commands = [ + ['tsc', ['--incremental', '--noEmit', '-p', 'tsconfig.check.json']], + ['vue-tsc', ['--incremental', '--noEmit', '-p', 'tsconfig.check-vue.json']], +]; + +const results = await Promise.allSettled( + commands.map( + ([cmd, args]) => + new Promise((resolve, reject) => { + const p = spawn(cmd, args, { stdio: 'inherit', shell: true }); + p.on('close', (code) => (code === 0 ? resolve() : reject(new Error(`${cmd} exited with code ${code}`)))); + }), + ), +); + +const failed = results.filter((r) => r.status === 'rejected'); +if (failed.length > 0) { + for (const f of failed) console.error(f.reason?.message); + process.exit(1); +} diff --git a/tsconfig.check-vue.json b/tsconfig.check-vue.json index 11eac7e5..8f8021c9 100644 --- a/tsconfig.check-vue.json +++ b/tsconfig.check-vue.json @@ -1,5 +1,10 @@ { "extends": "./tsconfig.json", + "compilerOptions": { + "incremental": true, + "tsBuildInfoFile": "./node_modules/.cache/tscheck/check-vue.tsbuildinfo", + "sourceMap": false + }, "include": [ "packages/design/src", "packages/editor/src", diff --git a/tsconfig.check.json b/tsconfig.check.json index 058ee1fd..9f699923 100644 --- a/tsconfig.check.json +++ b/tsconfig.check.json @@ -1,5 +1,10 @@ { "extends": "./tsconfig.json", + "compilerOptions": { + "incremental": true, + "tsBuildInfoFile": "./node_modules/.cache/tscheck/check.tsbuildinfo", + "sourceMap": false + }, "include": [ "packages/core/src", "packages/data-source/src",