Skip to content

Commit eeeb889

Browse files
committed
chore(deps): upgrade to TypeScript 5.9.3 and jest 29
Upgrade the TypeScript toolchain across all packages: - typescript ~4.8.0 -> ~5.9.3 - ts-jest ~26.3.0 -> ^29.4.11 - jest/jest-cli ^26.x -> ^29.7.0 (stays on 29 to keep Node 16 support) - @types/jest ^26.x -> ^29.5.14 - @types/node ~16.0.0 -> ^16.18.126 (16.0.3 conflicted with TS 5.9 libs) - tslib ^2.0.1 -> ^2.8.1 Required code/config changes: - jest.config.base.js: migrate ts-jest globals -> transform API, tsConfig -> tsconfig, explicit testEnvironment: node - utils-array reduce(): annotate accumulator T|U + cast awaited result (TS 5.9 Awaited/NonNullable inference) - tests: drop async from async-done callbacks (utils-fs), convert to async()+expect.assertions (utils-subprocess), spyOn().and.callFake -> jest.spyOn().mockImplementation (utils-network), legacyFakeTimers for timer-mock assertions (cli-framework-output) Validated: build + lint + full test suite green.
1 parent 903fd55 commit eeeb889

21 files changed

Lines changed: 123 additions & 124 deletions

File tree

jest.config.base.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
module.exports = {
22
preset: 'ts-jest',
3-
globals: {
4-
'ts-jest': {
5-
diagnostics: {
6-
// warnOnly: true,
3+
testEnvironment: 'node',
4+
transform: {
5+
'^.+\\.tsx?$': [
6+
'ts-jest',
7+
{
8+
diagnostics: {},
9+
tsconfig: {
10+
types: ['node', 'jest'],
11+
},
712
},
8-
tsConfig: {
9-
types: [
10-
"node",
11-
"jest",
12-
],
13-
},
14-
},
13+
],
1514
},
1615
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"chokidar-cli": "^2.0.0",
2121
"husky": "^4.2.0",
2222
"lerna": "^5.6.2",
23-
"typescript": "~4.8.0"
23+
"typescript": "~5.9.3"
2424
},
2525
"husky": {
2626
"hooks": {

packages/@ionic/cli-framework-output/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@
3333
"dependencies": {
3434
"@ionic/utils-terminal": "2.3.5",
3535
"debug": "^4.0.0",
36-
"tslib": "^2.0.1"
36+
"tslib": "^2.8.1"
3737
},
3838
"devDependencies": {
3939
"@ionic/utils-stream": "3.1.7",
4040
"@types/debug": "^4.1.1",
4141
"@types/inquirer": "0.0.43",
42-
"@types/jest": "^26.0.10",
43-
"@types/node": "~16.0.0",
44-
"jest": "^26.4.2",
45-
"jest-cli": "^26.0.1",
42+
"@types/jest": "^29.5.14",
43+
"@types/node": "^16.18.126",
44+
"jest": "^29.7.0",
45+
"jest-cli": "^29.7.0",
4646
"lint-staged": "^10.0.2",
47-
"ts-jest": "~26.3.0",
48-
"typescript": "~4.8.0"
47+
"ts-jest": "^29.4.11",
48+
"typescript": "~5.9.3"
4949
}
5050
}

packages/@ionic/cli-framework-output/src/__tests__/tasks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe('@ionic/cli-framework-output', () => {
1616
};
1717

1818
beforeEach(() => {
19-
jest.useFakeTimers();
19+
jest.useFakeTimers({ legacyFakeTimers: true });
2020
task = new Task({ msg: '' });
2121
handlers = {
2222
success: jest.fn(),

packages/@ionic/cli-framework-prompts/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,17 @@
3434
"@ionic/utils-terminal": "2.3.5",
3535
"debug": "^4.0.0",
3636
"inquirer": "^7.0.0",
37-
"tslib": "^2.0.1"
37+
"tslib": "^2.8.1"
3838
},
3939
"devDependencies": {
4040
"@types/debug": "^4.1.1",
4141
"@types/inquirer": "0.0.43",
42-
"@types/jest": "^26.0.10",
43-
"@types/node": "~16.0.0",
44-
"jest": "^26.4.2",
45-
"jest-cli": "^26.0.1",
42+
"@types/jest": "^29.5.14",
43+
"@types/node": "^16.18.126",
44+
"jest": "^29.7.0",
45+
"jest-cli": "^29.7.0",
4646
"lint-staged": "^10.0.2",
47-
"ts-jest": "~26.3.0",
48-
"typescript": "~4.8.0"
47+
"ts-jest": "^29.4.11",
48+
"typescript": "~5.9.3"
4949
}
5050
}

packages/@ionic/cli-framework/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,20 @@
3939
"lodash": "^4.17.5",
4040
"minimist": "^1.2.0",
4141
"rimraf": "^3.0.0",
42-
"tslib": "^2.0.1",
42+
"tslib": "^2.8.1",
4343
"write-file-atomic": "^3.0.0"
4444
},
4545
"devDependencies": {
4646
"@types/debug": "^4.1.1",
47-
"@types/jest": "^26.0.10",
47+
"@types/jest": "^29.5.14",
4848
"@types/lodash": "^4.14.104",
4949
"@types/minimist": "^1.2.0",
50-
"@types/node": "~16.0.0",
50+
"@types/node": "^16.18.126",
5151
"@types/write-file-atomic": "^3.0.0",
52-
"jest": "^26.4.2",
53-
"jest-cli": "^26.0.1",
52+
"jest": "^29.7.0",
53+
"jest-cli": "^29.7.0",
5454
"lint-staged": "^10.0.2",
55-
"ts-jest": "~26.3.0",
56-
"typescript": "~4.8.0"
55+
"ts-jest": "^29.4.11",
56+
"typescript": "~5.9.3"
5757
}
5858
}

packages/@ionic/cli/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,25 +65,25 @@
6565
"stream-combiner2": "^1.1.1",
6666
"superagent": "^9.0.2",
6767
"tar": "^6.0.1",
68-
"tslib": "^2.0.1"
68+
"tslib": "^2.8.1"
6969
},
7070
"devDependencies": {
7171
"@types/debug": "^4.1.1",
7272
"@types/diff": "^4.0.0",
7373
"@types/elementtree": "^0.1.0",
74-
"@types/jest": "^26.0.10",
74+
"@types/jest": "^29.5.14",
7575
"@types/lodash": "^4.14.104",
76-
"@types/node": "~16.0.0",
76+
"@types/node": "^16.18.126",
7777
"@types/semver": "^7.1.0",
7878
"@types/split2": "^2.1.6",
7979
"@types/superagent": "4.1.3",
8080
"@types/tar": "^6.1.2",
81-
"jest": "^26.4.2",
82-
"jest-cli": "^26.0.1",
81+
"jest": "^29.7.0",
82+
"jest-cli": "^29.7.0",
8383
"lint-staged": "^10.0.2",
8484
"rimraf": "^3.0.0",
8585
"source-map": "^0.7.0",
86-
"ts-jest": "~26.3.0",
87-
"typescript": "~4.8.0"
86+
"ts-jest": "^29.4.11",
87+
"typescript": "~5.9.3"
8888
}
8989
}

packages/@ionic/discover/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,20 @@
3030
"dependencies": {
3131
"debug": "^4.0.0",
3232
"netmask": "2.0.2",
33-
"tslib": "^2.0.1",
33+
"tslib": "^2.8.1",
3434
"ws": "^7.0.0"
3535
},
3636
"devDependencies": {
3737
"@types/debug": "^4.1.1",
38-
"@types/jest": "^26.0.10",
38+
"@types/jest": "^29.5.14",
3939
"@types/netmask": "2.0.5",
40-
"@types/node": "~16.0.0",
40+
"@types/node": "^16.18.126",
4141
"@types/ws": "^7.2.0",
42-
"jest": "^26.4.2",
43-
"jest-cli": "^26.0.1",
42+
"jest": "^29.7.0",
43+
"jest-cli": "^29.7.0",
4444
"lint-staged": "^10.0.2",
4545
"rimraf": "^3.0.0",
46-
"ts-jest": "~26.3.0",
47-
"typescript": "~4.8.0"
46+
"ts-jest": "^29.4.11",
47+
"typescript": "~5.9.3"
4848
}
4949
}

packages/@ionic/utils-array/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,17 @@
3232
},
3333
"dependencies": {
3434
"debug": "^4.0.0",
35-
"tslib": "^2.0.1"
35+
"tslib": "^2.8.1"
3636
},
3737
"devDependencies": {
3838
"@types/debug": "^4.1.1",
39-
"@types/jest": "^26.0.10",
40-
"@types/node": "~16.0.0",
41-
"jest": "^26.4.2",
42-
"jest-cli": "^26.0.1",
39+
"@types/jest": "^29.5.14",
40+
"@types/node": "^16.18.126",
41+
"jest": "^29.7.0",
42+
"jest-cli": "^29.7.0",
4343
"lint-staged": "^10.0.2",
4444
"rimraf": "^3.0.0",
45-
"ts-jest": "~26.3.0",
46-
"typescript": "~4.8.0"
45+
"ts-jest": "^29.4.11",
46+
"typescript": "~5.9.3"
4747
}
4848
}

packages/@ionic/utils-array/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ export async function reduce<T, U>(array: T[] | readonly T[], callback: (accumul
6767
initialValue = array[0];
6868
}
6969

70-
let value = initialValue;
70+
let value: T | U = initialValue;
7171

7272
for (let i = startingIndex; i < array.length; i++) {
7373
const v = await callback(value, array[i], i, array);
74-
value = v;
74+
value = v as T | U;
7575
}
7676

7777
return value;

0 commit comments

Comments
 (0)