From 877889fb32f04d8d979ec110a58fab96c0ec11bb Mon Sep 17 00:00:00 2001 From: Nick K Date: Sun, 30 Jun 2024 18:24:22 +0300 Subject: [PATCH] feat(tooling): Replace ts-node with tsimp for testing --- .gitignore | 3 ++ ava.config.js | 4 +-- package.json | 7 +++-- pnpm-lock.yaml | 74 +++++++++++++++++++++++++++++++++++++++++++++-- tsconfig.ava.json | 7 ----- tsconfig.json | 2 +- 6 files changed, 80 insertions(+), 17 deletions(-) delete mode 100644 tsconfig.ava.json diff --git a/.gitignore b/.gitignore index 84f75f8..ba620db 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,8 @@ coverage *.old @type +# tsimp cache +.tsimp + /src/**/*.js /lib diff --git a/ava.config.js b/ava.config.js index 284add8..c868d52 100644 --- a/ava.config.js +++ b/ava.config.js @@ -1,8 +1,6 @@ export default { failFast: true, - environmentVariables: { - TS_NODE_PROJECT: "./tsconfig.ava.json" - }, + nodeArguments: ["--no-warnings", "--import=tsimp"], extensions: { ts: "module" }, diff --git a/package.json b/package.json index 9a16caa..55967fd 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,10 @@ "coverage": "c8 pnpm test", "ci": "c8 pnpm test && c8 report --reporter=json", "build": "pnpm exec del-cli lib && pnpm exec tsup", - "test": "cross-env NODE_OPTIONS=\"--no-warnings --experimental-fetch --loader=ts-node/esm\" ava", + "test": "ava", + "report:html": "c8 -r=html pnpm test", "release": "pnpm build && pnpm changeset publish", - "prepare": "npx is-in-ci || husky install" + "prepare": "npx is-in-ci@latest || husky install" }, "devDependencies": { "@biomejs/biome": "1.8.3", @@ -64,7 +65,7 @@ "node-fetch": "3.3.2", "sinon": "18.0.0", "ts-expect": "1.3.0", - "ts-node": "10.9.2", + "tsimp": "2.0.11", "tsup": "8.1.0", "ttypescript": "1.5.15", "typescript": "5.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da6f848..0152cde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,9 +56,9 @@ importers: ts-expect: specifier: 1.3.0 version: 1.3.0 - ts-node: - specifier: 10.9.2 - version: 10.9.2(@types/node@20.14.2)(typescript@5.5.2) + tsimp: + specifier: 2.0.11 + version: 2.0.11(typescript@5.5.2) tsup: specifier: 8.1.0 version: 8.1.0(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.2))(typescript@5.5.2) @@ -352,6 +352,12 @@ packages: cpu: [x64] os: [win32] + '@isaacs/cached@1.0.1': + resolution: {integrity: sha512-7kGcJ9Hc1f4qpTApWz3swxbF9Qv1NF/GxuPtXeTptbsgvJIoufSd0h854Nq/2bw80F5C1onsFgEI05l+q0e4vw==} + + '@isaacs/catcher@1.0.4': + resolution: {integrity: sha512-g2klMwbnguClWNnCeQ1zYaDJsvPbIbnjdJPDE0z09MqoejJDZSLK5vIKiClq2Bkg5ubuI8vaN6wfIUi5GYzMVA==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1468,6 +1474,11 @@ packages: engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -1771,6 +1782,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rimraf@5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} + hasBin: true + rollup@4.18.0: resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -1847,6 +1863,13 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + sock-daemon@1.4.2: + resolution: {integrity: sha512-IzbegWshWWR+UzQ7487mbdYNmfJ1jXUXQBUHooqtpylO+aW0vMVbFN2d2ug3CSPZ0wbG7ZTTGwpUuthIDFIOGg==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + + socket-post-message@1.0.3: + resolution: {integrity: sha512-UhJaB3xR2oF+HvddFOq2cBZi4zVKOHvdiBo+BaScNxsEUg3TLWSP8BkweKfe07kfH1thjn1hJR0af/w1EtBFjg==} + source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} @@ -2006,6 +2029,13 @@ packages: '@swc/wasm': optional: true + tsimp@2.0.11: + resolution: {integrity: sha512-wRhMmvar8tWHN3ZmykD8f4B4sjCn/f8DFM67LRY+stf/LPa2Kq8ATE2PIi570/DiDJA8kjjxzos3EgP0LmnFLA==} + engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.1.0 + tsup@8.1.0: resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==} engines: {node: '>=18'} @@ -2077,6 +2107,9 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + walk-up-path@3.0.1: + resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -2472,6 +2505,12 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@isaacs/cached@1.0.1': + dependencies: + '@isaacs/catcher': 1.0.4 + + '@isaacs/catcher@1.0.4': {} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -3577,6 +3616,8 @@ snapshots: mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + mri@1.2.0: {} ms@2.1.2: {} @@ -3838,6 +3879,10 @@ snapshots: dependencies: glob: 7.2.3 + rimraf@5.0.7: + dependencies: + glob: 10.4.2 + rollup@4.18.0: dependencies: '@types/estree': 1.0.5 @@ -3919,6 +3964,14 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + sock-daemon@1.4.2: + dependencies: + rimraf: 5.0.7 + signal-exit: 4.1.0 + socket-post-message: 1.0.3 + + socket-post-message@1.0.3: {} + source-map@0.8.0-beta.0: dependencies: whatwg-url: 7.1.0 @@ -4086,6 +4139,19 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + tsimp@2.0.11(typescript@5.5.2): + dependencies: + '@isaacs/cached': 1.0.1 + '@isaacs/catcher': 1.0.4 + foreground-child: 3.2.1 + mkdirp: 3.0.1 + pirates: 4.0.6 + rimraf: 5.0.7 + signal-exit: 4.1.0 + sock-daemon: 1.4.2 + typescript: 5.5.2 + walk-up-path: 3.0.1 + tsup@8.1.0(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.2))(typescript@5.5.2): dependencies: bundle-require: 4.2.1(esbuild@0.21.5) @@ -4145,6 +4211,8 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + walk-up-path@3.0.1: {} + web-streams-polyfill@3.3.3: {} web-streams-polyfill@4.0.0: {} diff --git a/tsconfig.ava.json b/tsconfig.ava.json deleted file mode 100644 index 1983c15..0000000 --- a/tsconfig.ava.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": ["node_modules"], - "ts-node": { - "transpileOnly": true - } -} diff --git a/tsconfig.json b/tsconfig.json index 0cfed30..2731db6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,7 @@ "baseUrl": "src", "checkJs": false, "allowJs": false, - "skipLibCheck": false, + "skipLibCheck": true, "strict": true, "resolveJsonModule": true, "isolatedModules": true,