Skip to content

Commit b1ffc56

Browse files
authored
Merge pull request #380 from NullVoxPopuli/add-types-from-dt
Ship own types (copy from DT)
2 parents f10cf74 + 0125775 commit b1ffc56

6 files changed

Lines changed: 120 additions & 6 deletions

File tree

.github/workflows/ci-build.yml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,32 @@ jobs:
3636
- run: yarn install --no-lockfile
3737
- run: yarn test:ember
3838

39+
types-scenarios:
40+
name: "Types: ${{ matrix.tsVersion }}"
41+
runs-on: ubuntu-latest
42+
needs: test
43+
44+
strategy:
45+
matrix:
46+
tsVersion:
47+
- '~4.9'
48+
- '~5.0'
49+
- 'beta'
50+
steps:
51+
- uses: actions/checkout@v2
52+
- uses: volta-cli/action@v1
53+
with:
54+
# TS 5.1 does not support node 12
55+
node-version: 14.x
56+
- name: install dependencies
57+
run: yarn install --frozen-lockfile
58+
- name: Swap TS Version
59+
run: yarn add --dev typescript@${{ matrix.tsVersion }}
60+
- name: Check Types
61+
run: |
62+
yarn tsc -v
63+
yarn test:types
64+
3965
try-scenarios:
4066
name: "Try: ${{ matrix.ember-try-scenario }}"
4167

@@ -89,4 +115,4 @@ jobs:
89115
- name: publish to npm
90116
run: npm publish
91117
env:
92-
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
118+
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}

index.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export function camelize(str: string): string;
2+
export function capitalize(str: string): string;
3+
export function classify(str: string): string;
4+
export function dasherize(str: string): string;
5+
export function decamelize(str: string): string;
6+
export function underscore(str: string): string;
7+
export function w(str: string): string[];

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"start": "ember serve",
2626
"test": "npm-run-all lint test:*",
2727
"test:ember": "ember test",
28+
"test:types": "tsc --noEmit --project ./type-tests/tsconfig.json",
2829
"test:ember-compatibility": "ember try:each",
2930
"test-typings": "node node_modules/typescript/bin/tsc",
3031
"prepack": "yarn babel --extensions '.ts' --presets @babel/preset-typescript addon --out-dir addon/ --ignore '**/*.d.ts'",
@@ -42,6 +43,7 @@
4243
"@embroider/test-setup": "^0.47.1",
4344
"@glimmer/component": "^1.0.4",
4445
"@glimmer/tracking": "^1.0.4",
46+
"@tsconfig/ember": "^2.0.0",
4547
"@types/ember": "^3.16.5",
4648
"@types/ember-qunit": "^3.4.14",
4749
"@types/ember__test-helpers": "^2.0.2",
@@ -76,6 +78,7 @@
7678
"eslint-plugin-node": "^11.1.0",
7779
"eslint-plugin-prettier": "^4.0.0",
7880
"eslint-plugin-qunit": "^7.3.4",
81+
"expect-type": "^0.15.0",
7982
"loader.js": "^4.7.0",
8083
"npm-run-all": "^4.1.5",
8184
"prettier": "^2.6.0",
@@ -84,7 +87,7 @@
8487
"release-it": "^14.11.6",
8588
"release-it-lerna-changelog": "^3.1.0",
8689
"rimraf": "^3.0.2",
87-
"typescript": "^4.4.4",
90+
"typescript": "^5.0.4",
8891
"webpack": "^5"
8992
},
9093
"engines": {

type-tests/the-tests.ts

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import {
2+
dasherize,
3+
camelize,
4+
capitalize,
5+
classify,
6+
decamelize,
7+
underscore,
8+
w,
9+
} from '@ember/string';
10+
11+
import { expectTypeOf } from 'expect-type';
12+
13+
// @ts-expect-error
14+
dasherize();
15+
// @ts-expect-error
16+
dasherize('', '');
17+
18+
expectTypeOf(dasherize('blue man group')).toBeString();
19+
20+
// @ts-expect-error
21+
camelize();
22+
// @ts-expect-error
23+
camelize('', '');
24+
25+
expectTypeOf(camelize('blue man group')).toBeString();
26+
27+
// @ts-expect-error
28+
decamelize();
29+
// @ts-expect-error
30+
decamelize('', '');
31+
32+
expectTypeOf(decamelize('blue man group')).toBeString();
33+
34+
// @ts-expect-error
35+
underscore();
36+
// @ts-expect-error
37+
underscore('', '');
38+
39+
expectTypeOf(underscore('blue man group')).toBeString();
40+
41+
// @ts-expect-error
42+
w();
43+
// @ts-expect-error
44+
w('', '');
45+
46+
expectTypeOf(w('blue man group')).toMatchTypeOf<string[]>();
47+
48+
// @ts-expect-error
49+
classify();
50+
// @ts-expect-error
51+
classify('', '');
52+
53+
expectTypeOf(classify('blue man group')).toBeString();
54+
55+
// @ts-expect-error
56+
capitalize();
57+
// @ts-expect-error
58+
capitalize('', '');
59+
60+
expectTypeOf(capitalize('blue man group')).toBeString();

type-tests/tsconfig.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"extends": "@tsconfig/ember",
3+
"compilerOptions": {
4+
"paths": {
5+
"@ember/string": ["../"]
6+
}
7+
}
8+
}

yarn.lock

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1774,6 +1774,11 @@
17741774
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
17751775
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
17761776

1777+
"@tsconfig/ember@^2.0.0":
1778+
version "2.0.0"
1779+
resolved "https://registry.yarnpkg.com/@tsconfig/ember/-/ember-2.0.0.tgz#dba953e5527ccf7a2587f262a7afe0fa83c4e979"
1780+
integrity sha512-RzbDYYcjxVdG8Ki0xe99HN3+nHTZe6EBgw6N7B3yup7QogVFQQxA9nY7X80j1XzF15xqetwWiYfAjv5lkkp0/A==
1781+
17771782
"@types/body-parser@*":
17781783
version "1.19.1"
17791784
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c"
@@ -6360,6 +6365,11 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
63606365
dependencies:
63616366
homedir-polyfill "^1.0.1"
63626367

6368+
expect-type@^0.15.0:
6369+
version "0.15.0"
6370+
resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-0.15.0.tgz#89f75e22c88554844ea2b2faf4ef5fc2e579d3b5"
6371+
integrity sha512-yWnriYB4e8G54M5/fAFj7rCIBiKs1HAACaY13kCz6Ku0dezjS9aMcfcdVK2X8Tv2tEV1BPz/wKfQ7WA4S/d8aA==
6372+
63636373
express@^4.10.7, express@^4.17.1:
63646374
version "4.18.2"
63656375
resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
@@ -12499,10 +12509,10 @@ typescript-memoize@^1.0.0-alpha.3:
1249912509
resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.0.1.tgz#0a8199aa28f6fe18517f6e9308ef7bfbe9a98d59"
1250012510
integrity sha512-oJNge1qUrOK37d5Y6Ly2txKeuelYVsFtNF6U9kXIN7juudcQaHJQg2MxLOy0CqtkW65rVDYuTCOjnSIVPd8z3w==
1250112511

12502-
typescript@^4.4.4:
12503-
version "4.4.4"
12504-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c"
12505-
integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==
12512+
typescript@^5.0.4:
12513+
version "5.0.4"
12514+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
12515+
integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
1250612516

1250712517
uc.micro@^1.0.1, uc.micro@^1.0.5:
1250812518
version "1.0.6"

0 commit comments

Comments
 (0)