diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8582673..a842508 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v3 with: - go-version: "1.23" + go-version: "1.23" - name: Install webrpc-gen (development) run: git clone --single-branch https://github.com/webrpc/webrpc.git --branch master && cd webrpc && make install @@ -28,6 +28,17 @@ jobs: - name: Git diff of regenerated files run: cd _examples && make diff + typecheck: + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 22 + + - name: Install npm dependencies + run: cd typecheck && npm ci + + - name: Type check generated TypeScript files + run: cd typecheck && npm run typecheck # webrpc-tests: # strategy: # matrix: diff --git a/type-check/.gitignore b/type-check/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/type-check/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/type-check/package-lock.json b/type-check/package-lock.json new file mode 100644 index 0000000..7a0d750 --- /dev/null +++ b/type-check/package-lock.json @@ -0,0 +1,37 @@ +{ + "name": "webrpc-gen-typescript", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "webrpc-gen-typescript", + "version": "1.0.0", + "devDependencies": { + "@tsconfig/strictest": "^2.0.5", + "typescript": "^5.9.2" + } + }, + "node_modules/@tsconfig/strictest": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.5.tgz", + "integrity": "sha512-ec4tjL2Rr0pkZ5hww65c+EEPYwxOi4Ryv+0MtjeaSQRJyq322Q27eOQiFbuNgw2hpL4hB1/W/HBGk3VKS43osg==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + } + } +} diff --git a/type-check/package.json b/type-check/package.json new file mode 100644 index 0000000..a43ddb3 --- /dev/null +++ b/type-check/package.json @@ -0,0 +1,12 @@ +{ + "name": "webrpc-gen-typescript", + "version": "1.0.0", + "private": true, + "scripts": { + "typecheck": "tsc --noEmit -p tsconfig.json" + }, + "devDependencies": { + "@tsconfig/strictest": "^2.0.5", + "typescript": "^5.9.2" + } +} diff --git a/type-check/tsconfig.json b/type-check/tsconfig.json new file mode 100644 index 0000000..5180486 --- /dev/null +++ b/type-check/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "@tsconfig/strictest/tsconfig.json", + "include": ["../_examples/**/*.gen.ts"], + "exclude": ["node_modules", "../_examples/**/node_modules"] +}