diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3767a6fc..1edd4698 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,10 +15,11 @@ jobs: node-version: 20 - name: Install Dependencies run: npm ci + - name: Check TypeScript Errors + run: npm run tscheck - name: Install Playwright Browsers run: npx playwright install --with-deps - - name: Build Project run: npm run build - name: Run tests - run: npm test + run: npm test \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1c9a3673..3f20e9b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "react-dom": "^19.1.0", "react-i18next": "^15.6.0", "react-syntax-highlighter": "^15.6.1", + "typescript": "^5.9.2", "web-vitals": "^5.0.3" }, "devDependencies": { @@ -6760,6 +6761,19 @@ } } }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/typescript-strict-plugin": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/typescript-strict-plugin/-/typescript-strict-plugin-2.4.4.tgz", diff --git a/package.json b/package.json index 8d46a41d..5f45805d 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "react-dom": "^19.1.0", "react-i18next": "^15.6.0", "react-syntax-highlighter": "^15.6.1", + "typescript": "^5.9.2", "web-vitals": "^5.0.3" }, "scripts": { @@ -31,7 +32,8 @@ "build": "vite build", "test": "vitest", "gen": "node src/Blockly/gen.js", - "dev": "vite" + "dev": "vite", + "tscheck": "npx tsc -b --noEmit" }, "eslintConfig": { "extends": [ diff --git a/tsconfig.node.json b/tsconfig.node.json index cffebfcc..7dc9838c 100644 --- a/tsconfig.node.json +++ b/tsconfig.node.json @@ -20,5 +20,5 @@ "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": ["vite.config.ts"] + "include": ["vite.config.mts"] } \ No newline at end of file