From 4f38ab52abe1b9952fd2ef90d1f2b154ab53ac56 Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Tue, 17 Sep 2024 14:06:27 -0700 Subject: [PATCH 1/2] chore: Remove lint:types script --- package.json | 4 +--- packages/extension/package.json | 5 ++--- packages/shims/tsconfig.json | 2 +- packages/streams/tsconfig.json | 2 +- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 5a49c1e20..c51f12cfb 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,10 @@ "packages/*" ], "scripts": { - "build": "yarn run build:source && yarn lint:types", + "build": "yarn run build:source", "build:clean": "yarn clean && yarn build", "build:docs": "yarn workspaces foreach --all --exclude @ocap/monorepo --exclude @ocap/extension --parallel --interlaced --verbose run build:docs", "build:source": "yarn workspaces foreach --all --topological --parallel --interlaced --exclude @ocap/monorepo --verbose run build", - "build:watch": "yarn run build --watch", "changelog:update": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run changelog:update", "changelog:validate": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run changelog:validate", "clean": "rimraf --glob './*.tsbuildinfo' && yarn workspaces foreach --all --parallel --interlaced --verbose run clean", @@ -26,7 +25,6 @@ "lint:eslint": "eslint . --cache --ext js,mjs,cjs,ts,mts,cts", "lint:fix": "yarn constraints --fix && yarn lint:eslint --fix && yarn lint:misc --write && yarn lint:dependencies:fix", "lint:misc": "prettier --no-error-on-unmatched-pattern '**/*.json' '**/*.md' '**/*.html' '!**/CHANGELOG.old.md' '**/*.yml' '!.yarnrc.yml' '!merged-packages/**' --ignore-path .gitignore", - "lint:types": "tsc --build tsconfig.build.json --verbose", "prepack": "./scripts/prepack.sh", "test": "yarn workspaces foreach --all --parallel --verbose run test", "test:clean": "yarn workspaces foreach --all --parallel --verbose run test:clean && yarn test", diff --git a/packages/extension/package.json b/packages/extension/package.json index 0a381a83a..9f8be97c7 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -12,8 +12,8 @@ "dist/" ], "scripts": { - "build": "yarn lint:types && yarn build:vite", - "build:dev": "yarn lint:types && yarn build:vite:dev", + "build": "yarn build:vite", + "build:dev": "yarn build:vite:dev", "build:vite": "vite build --config vite.config.ts", "build:vite:dev": "yarn build:vite --mode development", "changelog:validate": "../../scripts/validate-changelog.sh @ocap/extension", @@ -23,7 +23,6 @@ "lint:eslint": "eslint . --cache --ext js,mjs,cjs,ts,mts,cts", "lint:fix": "yarn constraints --fix && yarn lint:eslint --fix && yarn lint:misc --write", "lint:misc": "prettier --no-error-on-unmatched-pattern '**/*.json' '**/*.md' '**/*.html' '!**/CHANGELOG.old.md' '**/*.yml' '!.yarnrc.yml' '!merged-packages/**' --ignore-path ../../.gitignore", - "lint:types": "tsc --project tsconfig.build.json", "publish:preview": "yarn npm publish --tag preview", "start": "yarn build:vite:dev --watch", "test": "vitest run --config vitest.config.ts", diff --git a/packages/shims/tsconfig.json b/packages/shims/tsconfig.json index 43b2f489c..d40d245f0 100644 --- a/packages/shims/tsconfig.json +++ b/packages/shims/tsconfig.json @@ -1,8 +1,8 @@ { "extends": "../../tsconfig.packages.json", "compilerOptions": { - "baseUrl": "./", "allowJs": true, + "baseUrl": "./", "checkJs": true }, "references": [], diff --git a/packages/streams/tsconfig.json b/packages/streams/tsconfig.json index 54f52c3be..4dda57d2d 100644 --- a/packages/streams/tsconfig.json +++ b/packages/streams/tsconfig.json @@ -6,5 +6,5 @@ "types": ["ses", "vitest", "vitest/jsdom"] }, "references": [{ "path": "../test-utils" }], - "include": ["./src", "test/envelope-kit-fixtures.ts"] + "include": ["./src", "./test/envelope-kit-fixtures.ts"] } From 7117c114494acd433f916b372603a68f79c46718 Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Tue, 17 Sep 2024 14:20:51 -0700 Subject: [PATCH 2/2] build(extension): Add build-time type checks via vite-plugin-checker --- packages/extension/package.json | 1 + packages/extension/vite.config.ts | 9 +- yarn.lock | 153 +++++++++++++++++++++++++++++- 3 files changed, 155 insertions(+), 8 deletions(-) diff --git a/packages/extension/package.json b/packages/extension/package.json index 9f8be97c7..5df46d844 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -69,6 +69,7 @@ "typedoc": "^0.24.8", "typescript": "~5.5.4", "vite": "^5.3.5", + "vite-plugin-checker": "^0.8.0", "vite-plugin-static-copy": "^1.0.6", "vitest": "^2.0.5" }, diff --git a/packages/extension/vite.config.ts b/packages/extension/vite.config.ts index 397939cbd..09d5a97d5 100644 --- a/packages/extension/vite.config.ts +++ b/packages/extension/vite.config.ts @@ -3,6 +3,7 @@ import path from 'path'; import { defineConfig } from 'vite'; +import { checker as viteChecker } from 'vite-plugin-checker'; import { viteStaticCopy } from 'vite-plugin-static-copy'; import { htmlTrustedPrelude } from './vite-plugins/html-trusted-prelude'; @@ -57,12 +58,14 @@ export default defineConfig(({ mode }) => ({ plugins: [ htmlTrustedPrelude(), + jsTrustedPrelude({ + trustedPreludes: jsTrustedPreludes, + }), viteStaticCopy({ targets: staticCopyTargets.map((src) => ({ src, dest: './' })), watch: { reloadPageOnChange: true }, + silent: mode === 'development', }), - jsTrustedPrelude({ - trustedPreludes: jsTrustedPreludes, - }), + viteChecker({ typescript: { tsconfigPath: 'tsconfig.build.json' } }), ], })); diff --git a/yarn.lock b/yarn.lock index 9ca45702a..15519ea65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -64,7 +64,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.24.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -1402,6 +1402,7 @@ __metadata: typedoc: "npm:^0.24.8" typescript: "npm:~5.5.4" vite: "npm:^5.3.5" + vite-plugin-checker: "npm:^0.8.0" vite-plugin-static-copy: "npm:^1.0.6" vitest: "npm:^2.0.5" languageName: unknown @@ -2366,6 +2367,15 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2 + languageName: node + linkType: hard + "ansi-escapes@npm:^7.0.0": version: 7.0.0 resolution: "ansi-escapes@npm:7.0.0" @@ -2697,7 +2707,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.2": +"chalk@npm:^4.0.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -2761,7 +2771,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.5.3": +"chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: @@ -2907,6 +2917,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^8.0.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 10/6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3 + languageName: node + linkType: hard + "comment-parser@npm:1.4.1": version: 1.4.1 resolution: "comment-parser@npm:1.4.1" @@ -3810,7 +3827,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -6104,7 +6121,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -6544,6 +6561,13 @@ __metadata: languageName: node linkType: hard +"tiny-invariant@npm:^1.1.0": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 10/5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe + languageName: node + linkType: hard + "tinybench@npm:^2.8.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" @@ -6662,6 +6686,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f + languageName: node + linkType: hard + "typedoc@npm:^0.24.8": version: 0.24.8 resolution: "typedoc@npm:0.24.8" @@ -6866,6 +6897,58 @@ __metadata: languageName: node linkType: hard +"vite-plugin-checker@npm:^0.8.0": + version: 0.8.0 + resolution: "vite-plugin-checker@npm:0.8.0" + dependencies: + "@babel/code-frame": "npm:^7.12.13" + ansi-escapes: "npm:^4.3.0" + chalk: "npm:^4.1.1" + chokidar: "npm:^3.5.1" + commander: "npm:^8.0.0" + fast-glob: "npm:^3.2.7" + fs-extra: "npm:^11.1.0" + npm-run-path: "npm:^4.0.1" + strip-ansi: "npm:^6.0.0" + tiny-invariant: "npm:^1.1.0" + vscode-languageclient: "npm:^7.0.0" + vscode-languageserver: "npm:^7.0.0" + vscode-languageserver-textdocument: "npm:^1.0.1" + vscode-uri: "npm:^3.0.2" + peerDependencies: + "@biomejs/biome": ">=1.7" + eslint: ">=7" + meow: ^9.0.0 + optionator: ^0.9.1 + stylelint: ">=13" + typescript: "*" + vite: ">=2.0.0" + vls: "*" + vti: "*" + vue-tsc: ~2.1.6 + peerDependenciesMeta: + "@biomejs/biome": + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + checksum: 10/a38a90ac706b4fdd21db52caca7e380118ae1e8cd520184b000481cf40baac491723c71e90b6d36197051131f0e20509d2e297e199831bf3428cf4b1c50114ef + languageName: node + linkType: hard + "vite-plugin-static-copy@npm:^1.0.6": version: 1.0.6 resolution: "vite-plugin-static-copy@npm:1.0.6" @@ -6988,6 +7071,59 @@ __metadata: languageName: node linkType: hard +"vscode-jsonrpc@npm:6.0.0": + version: 6.0.0 + resolution: "vscode-jsonrpc@npm:6.0.0" + checksum: 10/c9af7ed831912b5df0d046260ff24f99582f1f75aa49f49a39a67da1dc595dd00ddae756ae3ef64c73bc2c0e4d79b37aa13e56e24a30319f8053a229d6589b19 + languageName: node + linkType: hard + +"vscode-languageclient@npm:^7.0.0": + version: 7.0.0 + resolution: "vscode-languageclient@npm:7.0.0" + dependencies: + minimatch: "npm:^3.0.4" + semver: "npm:^7.3.4" + vscode-languageserver-protocol: "npm:3.16.0" + checksum: 10/0a52d548d4364516793bcaf04cf9d393b0f14ff098495d17b77944e0ae052e69f7a91387c334081d126cbed316ed6cfb928bbe545f3c978145f414a37bef165c + languageName: node + linkType: hard + +"vscode-languageserver-protocol@npm:3.16.0": + version: 3.16.0 + resolution: "vscode-languageserver-protocol@npm:3.16.0" + dependencies: + vscode-jsonrpc: "npm:6.0.0" + vscode-languageserver-types: "npm:3.16.0" + checksum: 10/6cc184e7bc7e9334361080662a1927cc9fa4b42acf19f1e7b92f9cafa5cb0897cc1586ef1c8eb932bf46404f6eed00283540ed2e4c8247506f9bec3a4aee7131 + languageName: node + linkType: hard + +"vscode-languageserver-textdocument@npm:^1.0.1": + version: 1.0.12 + resolution: "vscode-languageserver-textdocument@npm:1.0.12" + checksum: 10/2bc0fde952d40f35a31179623d1491b0fafdee156aaf58557f40f5d394a25fc84826763cdde55fa6ce2ed9cd35a931355ad6dd7fe5db82e7f21e5d865f0af8c6 + languageName: node + linkType: hard + +"vscode-languageserver-types@npm:3.16.0": + version: 3.16.0 + resolution: "vscode-languageserver-types@npm:3.16.0" + checksum: 10/a276ad08bcf6b7eabff50073a927e3053243d558f6d7a9cba7475de2f2623ec42279e4e03544cce4cfdd5a91f3ed517074f688b42395b3e91d21809dbad43019 + languageName: node + linkType: hard + +"vscode-languageserver@npm:^7.0.0": + version: 7.0.0 + resolution: "vscode-languageserver@npm:7.0.0" + dependencies: + vscode-languageserver-protocol: "npm:3.16.0" + bin: + installServerIntoExtension: bin/installServerIntoExtension + checksum: 10/4ea1536e83ee392d0f0d4971828095a4efcd6b5b1310e7fc95f1d5e0e91328e52b27294718dcd5957d029d9301e8bb7cb181f1127937737a09a9a2ae413997e4 + languageName: node + linkType: hard + "vscode-oniguruma@npm:^1.7.0": version: 1.7.0 resolution: "vscode-oniguruma@npm:1.7.0" @@ -7002,6 +7138,13 @@ __metadata: languageName: node linkType: hard +"vscode-uri@npm:^3.0.2": + version: 3.0.8 + resolution: "vscode-uri@npm:3.0.8" + checksum: 10/e882d6b679e0d053cbc042893c0951a135d899a192b62cd07f0a8924f11ae722067a8d6b1b5b147034becf57faf9fff9fb543b17b749fd0f17db1f54f783f07c + languageName: node + linkType: hard + "w3c-xmlserializer@npm:^5.0.0": version: 5.0.0 resolution: "w3c-xmlserializer@npm:5.0.0"