Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add @tsconfig/node20, add node 20 to test matrix #2003

Merged
merged 4 commits into from
May 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
matrix:
os: [ubuntu, windows]
# Don't forget to add all new flavors to this list!
flavor: [1, 2, 3, 4, 5]
flavor: [1, 2, 3, 4, 5, 6]
include:
# Node 16
- flavor: 1
Expand All @@ -87,10 +87,16 @@ jobs:
nodeFlag: 18
typescript: next
typescriptFlag: next
# Node nightly
# Node 20
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also need to add to flavor array above

- flavor: 5
node: 20-nightly
nodeFlag: 20_nightly
node: 20
nodeFlag: 20
typescript: latest
typescriptFlag: latest
# Node nightly
- flavor: 6
node: 21-nightly
nodeFlag: 21_nightly
typescript: latest
typescriptFlag: latest
steps:
Expand Down
3 changes: 3 additions & 0 deletions node20/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "@tsconfig/node20/tsconfig.json"
}
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@
"./transpilers/swc-experimental": "./transpilers/swc-experimental.js",
"./node14/tsconfig.json": "./node14/tsconfig.json",
"./node16/tsconfig.json": "./node16/tsconfig.json",
"./node18/tsconfig.json": "./node18/tsconfig.json"
"./node18/tsconfig.json": "./node18/tsconfig.json",
"./node20/tsconfig.json": "./node20/tsconfig.json"
},
"types": "dist/index.d.ts",
"bin": {
Expand All @@ -55,7 +56,8 @@
"/tsconfig.schemastore-schema.json",
"/node14/",
"/node16/",
"/node18/"
"/node18/",
"/node20/"
],
"scripts": {
"lint": "dprint check",
Expand Down Expand Up @@ -161,6 +163,7 @@
"@tsconfig/node14": "*",
"@tsconfig/node16": "*",
"@tsconfig/node18": "*",
"@tsconfig/node20": "*",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
Expand Down
1 change: 1 addition & 0 deletions src/test/package.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,5 @@ test('should export all CJS entrypoints', () => {
testsDirRequire.resolve('ts-node/node14/tsconfig.json');
testsDirRequire.resolve('ts-node/node16/tsconfig.json');
testsDirRequire.resolve('ts-node/node18/tsconfig.json');
testsDirRequire.resolve('ts-node/node20/tsconfig.json');
});
3 changes: 2 additions & 1 deletion src/test/tsconfig-bases.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ test.suite('should use implicit @tsconfig/bases config when one is not loaded fr
lib = 'es2023';
}

test('implicitly uses @tsconfig/node14, @tsconfig/node16, or @tsconfig/node18 compilerOptions when both TS and node versions support it', async (t) => {
test('implicitly uses @tsconfig/node14, @tsconfig/node16, @tsconfig/node18, or @tsconfig/node20 compilerOptions when both TS and node versions support it', async (t) => {
const r1 = await exec(`${BIN_PATH} --showConfig`, {
cwd: t.context.tmpDir,
});
Expand Down Expand Up @@ -94,4 +94,5 @@ test.suite('should bundle @tsconfig/bases to be used in your own tsconfigs', (te
test(`ts-node/node14/tsconfig.json`, macro, 'node14');
test(`ts-node/node16/tsconfig.json`, macro, 'node16');
test(`ts-node/node18/tsconfig.json`, macro, 'node18');
test(`ts-node/node20/tsconfig.json`, macro, 'node20');
});
4 changes: 4 additions & 0 deletions src/tsconfigs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ const nodeMajor = parseInt(process.versions.node.split('.')[0], 10);
*/
export function getDefaultTsconfigJsonForNodeVersion(ts: TSCommon): any {
const tsInternal = ts as any as TSInternal;
if (nodeMajor >= 20) {
const config = require('@tsconfig/node20/tsconfig.json');
if (configCompatible(config)) return config;
}
if (nodeMajor >= 18) {
const config = require('@tsconfig/node18/tsconfig.json');
if (configCompatible(config)) return config;
Expand Down
3 changes: 3 additions & 0 deletions tests/tsconfig-bases/node20/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "ts-node/node20/tsconfig.json"
}
8 changes: 8 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,13 @@ __metadata:
languageName: node
linkType: hard

"@tsconfig/node20@npm:*":
version: 1.0.0
resolution: "@tsconfig/node20@npm:1.0.0"
checksum: bb2f9ffeb73d1317f3ebfb260109b5e382cab228da2bc8b6202979605820a771fa7cf7a8defc19c9c9ae9d91d6da7b586ca3d9a1e7e1547af6a5118c462bacef
languageName: node
linkType: hard

"@types/argparse@npm:1.0.38":
version: 1.0.38
resolution: "@types/argparse@npm:1.0.38"
Expand Down Expand Up @@ -3812,6 +3819,7 @@ __metadata:
"@tsconfig/node14": "*"
"@tsconfig/node16": "*"
"@tsconfig/node18": "*"
"@tsconfig/node20": "*"
"@types/diff": ^4.0.2
"@types/lodash": ^4.14.151
"@types/node": 13.13.5
Expand Down