Skip to content

Commit 3e00691

Browse files
Merge pull request #473 from emberjs/type-check-all-test-apps
Drop support for TS < v5 -- Setup CI for type-checking all test apps
2 parents 6173234 + 1323352 commit 3e00691

File tree

22 files changed

+2484
-3477
lines changed

22 files changed

+2484
-3477
lines changed

.github/workflows/ci-build.yml

+36
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,42 @@ jobs:
3434
- run: pnpm test:ember
3535
working-directory: test-apps/base-tests
3636

37+
typecheck:
38+
name: '${{ matrix.typescript-scenario }}'
39+
runs-on: ubuntu-latest
40+
timeout-minutes: 5
41+
continue-on-error: true
42+
strategy:
43+
fail-fast: true
44+
matrix:
45+
typescript-scenario:
46+
- typescript@5.0
47+
- typescript@5.1
48+
- typescript@5.2
49+
- typescript@5.3
50+
- typescript@5.4
51+
52+
steps:
53+
- uses: actions/checkout@v4
54+
- uses: wyvox/action-setup-pnpm@v3
55+
- run: pnpm prepack
56+
working-directory: ./addon/
57+
58+
- name: 'Change base tests TS to ${{ matrix.typescript-scenario }}'
59+
run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}'
60+
working-directory: ./test-apps/base-tests/
61+
62+
- name: 'Change ember-concurrency TS to ${{ matrix.typescript-scenario }}'
63+
run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}'
64+
working-directory: ./test-apps/ember-concurrency-v2
65+
66+
- name: 'Change ember-fetch TS to ${{ matrix.typescript-scenario }}'
67+
run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}'
68+
working-directory: ./test-apps/ember-fetch-v8
69+
70+
- run: pnpm --filter "*" test:ts;
71+
72+
3773
try-scenarios:
3874
timeout-minutes: 10
3975
name: "Try: ${{ matrix.ember-try-scenario }} @ ${{ matrix.app }}"

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ package.json.ember-try
2626
addon/addon/**/*.js
2727

2828
*.d.ts
29+
!test-apps/**/*.d.ts
2930
!addon/types/**/*.d.ts
3031
*.tgz

addon/addon/build-waiter.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class TestWaiterImpl<T extends object | Primitive = Token> implements TestWaiter
3535
this._register();
3636

3737
if (this.items.has(token)) {
38-
throw new Error(`beginAsync called for ${token} but it is already pending.`);
38+
throw new Error(`beginAsync called for ${token as string} but it is already pending.`);
3939
}
4040

4141
let error = new Error();
@@ -112,7 +112,7 @@ class NoopTestWaiter implements TestWaiter {
112112
return this;
113113
}
114114

115-
endAsync(): void {}
115+
endAsync(): void { }
116116

117117
waitUntil(): boolean {
118118
return true;
@@ -122,7 +122,7 @@ class NoopTestWaiter implements TestWaiter {
122122
return [];
123123
}
124124

125-
reset(): void {}
125+
reset(): void { }
126126
}
127127

128128
/**

addon/package.json

+7-12
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
"postpack": "ember ts:clean"
3030
},
3131
"dependencies": {
32-
"@babel/core": "^7.24.0",
32+
"@babel/core": "^7.24.5",
3333
"@glimmer/env": "^0.1.7",
34-
"ember-auto-import": "^2.6.3",
34+
"ember-auto-import": "^2.7.2",
3535
"ember-cli-babel": "^8.2.0",
36-
"ember-cli-typescript": "^5.0.0",
36+
"ember-cli-typescript": "^5.3.0",
3737
"ember-cli-version-checker": "^5.1.2",
3838
"semver": "^7.3.5"
3939
},
@@ -42,29 +42,24 @@
4242
"@babel/preset-typescript": "^7.15.0",
4343
"@ember/optional-features": "^2.0.0",
4444
"@ember/string": "^3.0.1",
45-
"@types/ember": "^3.16.5",
46-
"@types/ember-test-helpers": "^1.0.10",
47-
"@types/ember-testing-helpers": "^0.0.4",
48-
"@types/ember__test-helpers": "^2.6.1",
4945
"@types/qunit": "^2.19.9",
5046
"@types/rsvp": "^4.0.4",
5147
"@typescript-eslint/eslint-plugin": "^4.29.2",
5248
"@typescript-eslint/parser": "^4.30.0",
5349
"co": "^4.6.0",
5450
"ember-cli": "^4.10.0",
5551
"ember-cli-dependency-checker": "^3.2.0",
56-
"ember-cli-htmlbars": "^5.7.1",
52+
"ember-cli-htmlbars": "^6.3.0",
5753
"ember-cli-inject-live-reload": "^2.1.0",
5854
"ember-cli-uglify": "^3.0.0",
59-
"ember-concurrency": "^2.1.2",
6055
"ember-concurrency-decorators": "^2.0.3",
6156
"ember-concurrency-ts": "^0.3.1",
6257
"ember-decorators-polyfill": "^1.1.5",
6358
"ember-disable-prototype-extensions": "^1.1.3",
6459
"ember-load-initializers": "^2.1.2",
6560
"ember-maybe-import-regenerator-for-testing": "^1.0.0",
66-
"ember-resolver": "^8.0.2",
67-
"ember-source": "~3.26.1",
61+
"ember-resolver": "^11.0.1",
62+
"ember-source": "^5.0.0",
6863
"ember-source-channel-url": "^3.0.0",
6964
"ember-try": "^3.0.0",
7065
"eslint": "^7.32.0",
@@ -76,7 +71,7 @@
7671
"npm-run-all": "^4.1.5",
7772
"prettier": "^2.5.1",
7873
"qunit": "^2.20.0",
79-
"typescript": "~4.9.0",
74+
"typescript": "~5.0.0",
8075
"webpack": "^5.0.0"
8176
},
8277
"engines": {

addon/tsconfig.json

+7-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
"allowJs": true,
55
"moduleResolution": "node",
66
"allowSyntheticDefaultImports": true,
7+
// have to use this, because the current TS setup errors with ember's own types
8+
// this will be fixed during v2 addon conversion
9+
"skipLibCheck": true,
710
"noImplicitAny": true,
811
"noImplicitThis": true,
912
"alwaysStrict": true,
@@ -26,14 +29,16 @@
2629
"@ember/test-waiters": ["addon"],
2730
"@ember/test-waiters/*": ["addon/*"],
2831
"*": ["types/*"]
29-
}
32+
},
33+
"types": ["ember-source/types"]
3034
},
3135
"include": [
3236
"app/**/*",
3337
"addon/**/*",
3438
"tests/**/*",
3539
"types/**/*",
3640
"test-support/**/*",
37-
"addon-test-support/**/*"
41+
"addon-test-support/**/*",
42+
"unpublished-development-types/**/*"
3843
]
3944
}

addon/types/global.d.ts

-6
This file was deleted.

package.json

+11
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,17 @@
1717
"concurrently": "^8.2.1",
1818
"release-plan": "^0.8.0"
1919
},
20+
"pnpm": {
21+
"overrides_notes": {
22+
"@glimmer/*": "https://github.com/glimmerjs/glimmer.js/issues/413"
23+
},
24+
"overrides": {
25+
"@glimmer/validator": ">= 0.86.0",
26+
"@glimmer/manager": ">= 0.86.0",
27+
"@glimmer/runtime": ">= 0.86.0",
28+
"@glimmer/syntax": ">= 0.86.0"
29+
}
30+
},
2031
"volta": {
2132
"node": "18.16.0",
2233
"pnpm": "8.7.6"

0 commit comments

Comments
 (0)