Skip to content

Commit 3c49e15

Browse files
committed
fix for TS 4.5
1 parent f0e0127 commit 3c49e15

File tree

7 files changed

+87
-128
lines changed

7 files changed

+87
-128
lines changed

packages/rtk-query-codegen-openapi/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"@types/lodash": "^4.14.165",
4040
"@types/node": "^14.14.12",
4141
"@types/prettier": "^2.1.6",
42+
"@types/semver": "^7.3.9",
4243
"babel-jest": "^26.6.3",
4344
"chalk": "^4.1.0",
4445
"del": "^6.0.0",
@@ -56,12 +57,11 @@
5657
"@apidevtools/swagger-parser": "^10.0.2",
5758
"commander": "^6.2.0",
5859
"esbuild-runner": "^2.2.1",
59-
"glob-to-regexp": "^0.4.1",
60-
"oazapfts": "3.4.0",
60+
"oazapfts": "^3.5.0",
6161
"prettier": "^2.2.1",
62+
"semver": "^7.3.5",
6263
"swagger2openapi": "^7.0.4",
63-
"ts-morph": "^9.1.0",
64-
"typescript": "^4.1.2"
64+
"typescript": ">=4.1 <=4.5"
6565
},
6666
"husky": {
6767
"hooks": {

packages/rtk-query-codegen-openapi/src/bin/cli.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
import program from 'commander';
44
import { dirname, resolve } from 'path';
55
import { generateEndpoints, parseConfig } from '../';
6+
import semver from 'semver';
7+
import { version as tsVersion } from 'typescript';
8+
9+
if (!semver.satisfies(tsVersion, '>=4.1 <=4.5')) {
10+
console.warn(
11+
'Please note that `@rtk-query/codegen-openapi` only has been tested with TS versions 4.1 to 4.5 - other versions might cause problems.'
12+
);
13+
}
614

715
let ts = false;
816
try {

packages/rtk-query-codegen-openapi/src/codegen.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import * as ts from 'typescript';
2-
import { GenerationOptions } from './types';
3-
const { factory } = ts;
1+
import ts from 'typescript';
2+
import { factory } from './utils/factory';
43

54
const defaultEndpointBuilder = factory.createIdentifier('build');
65

packages/rtk-query-codegen-openapi/src/generate.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import * as ts from 'typescript';
1+
import ts from 'typescript';
22
import * as path from 'path';
3-
import { camelCase, filter } from 'lodash';
3+
import { camelCase } from 'lodash';
44
import ApiGenerator, {
55
getOperationName as _getOperationName,
66
getReferenceName,
@@ -19,8 +19,7 @@ import type { EndpointMatcher, EndpointOverrides, GenerationOptions, OperationDe
1919
import { capitalize, getOperationDefinitions, getV3Doc, isQuery as testIsQuery, removeUndefined } from './utils';
2020
import type { ObjectPropertyDefinitions } from './codegen';
2121
import { generateCreateApiCall, generateEndpointDefinition, generateImportNode } from './codegen';
22-
23-
const { factory } = ts;
22+
import { factory } from './utils/factory';
2423

2524
const generatedApiName = 'injectedRtkApi';
2625

packages/rtk-query-codegen-openapi/src/generators/react-hooks.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import * as ts from 'typescript';
1+
import ts from 'typescript';
22
import { getOperationName } from 'oazapfts/lib/codegen/generate';
33
import { capitalize, isQuery } from '../utils';
44
import type { OperationDefinition, EndpointOverrides } from '../types';
55
import { getOverrides } from '../generate';
6-
7-
const { factory } = ts;
6+
import { factory } from '../utils/factory';
87

98
type GetReactHookNameParams = {
109
operationDefinition: OperationDefinition;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import ts from 'typescript';
2+
import semver from 'semver';
3+
4+
const originalFactory = ts.factory;
5+
6+
function createImportSpecifier(propertyName: ts.Identifier | undefined, name: ts.Identifier): ts.ImportSpecifier {
7+
if (semver.satisfies(ts.version, '>= 4.5'))
8+
// @ts-ignore
9+
return originalFactory.createImportSpecifier(false, propertyName, name);
10+
// @ts-ignore
11+
return originalFactory.createImportSpecifier(propertyName, name);
12+
}
13+
14+
function createExportSpecifier(
15+
propertyName: string | ts.Identifier | undefined,
16+
name: string | ts.Identifier
17+
): ts.ExportSpecifier {
18+
if (semver.satisfies(ts.version, '>= 4.5'))
19+
// @ts-ignore
20+
return originalFactory.createExportSpecifier(false, propertyName, name);
21+
// @ts-ignore
22+
return originalFactory.createExportSpecifier(propertyName, name);
23+
}
24+
25+
export const factory = {
26+
...originalFactory,
27+
createImportSpecifier,
28+
createExportSpecifier,
29+
};

yarn.lock

Lines changed: 39 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -4116,16 +4116,6 @@ __metadata:
41164116
languageName: node
41174117
linkType: hard
41184118

4119-
"@dsherret/to-absolute-glob@npm:^2.0.2":
4120-
version: 2.0.2
4121-
resolution: "@dsherret/to-absolute-glob@npm:2.0.2"
4122-
dependencies:
4123-
is-absolute: ^1.0.0
4124-
is-negated-glob: ^1.0.0
4125-
checksum: 2d91148261bcbbdf0dd8176c74348546660607750000c49bb99315777b2dd6d8f0223f1a93ec02486e8e6319ecc0a8342e32efb57b8013f6acb21b8592a3e180
4126-
languageName: node
4127-
linkType: hard
4128-
41294119
"@emotion/babel-plugin@npm:^11.3.0":
41304120
version: 11.3.0
41314121
resolution: "@emotion/babel-plugin@npm:11.3.0"
@@ -6171,25 +6161,25 @@ __metadata:
61716161
"@types/lodash": ^4.14.165
61726162
"@types/node": ^14.14.12
61736163
"@types/prettier": ^2.1.6
6164+
"@types/semver": ^7.3.9
61746165
babel-jest: ^26.6.3
61756166
chalk: ^4.1.0
61766167
commander: ^6.2.0
61776168
del: ^6.0.0
61786169
esbuild: ^0.13.10
61796170
esbuild-runner: ^2.2.1
6180-
glob-to-regexp: ^0.4.1
61816171
husky: ^4.3.6
61826172
jest: ^26.6.3
61836173
msw: ^0.25.0
6184-
oazapfts: 3.4.0
6174+
oazapfts: ^3.5.0
61856175
openapi-types: ^9.1.0
61866176
prettier: ^2.2.1
61876177
pretty-quick: ^3.1.0
6178+
semver: ^7.3.5
61886179
swagger2openapi: ^7.0.4
61896180
ts-jest: ^26.4.4
6190-
ts-morph: ^9.1.0
61916181
ts-node: ^10.4.0
6192-
typescript: ^4.1.2
6182+
typescript: ">=4.1 <=4.5"
61936183
yalc: ^1.0.0-pre.47
61946184
bin:
61956185
rtk-query-codegen-openapi: lib/bin/cli.js
@@ -6634,20 +6624,6 @@ __metadata:
66346624
languageName: node
66356625
linkType: hard
66366626

6637-
"@ts-morph/common@npm:~0.7.0":
6638-
version: 0.7.5
6639-
resolution: "@ts-morph/common@npm:0.7.5"
6640-
dependencies:
6641-
"@dsherret/to-absolute-glob": ^2.0.2
6642-
fast-glob: ^3.2.5
6643-
is-negated-glob: ^1.0.0
6644-
mkdirp: ^1.0.4
6645-
multimatch: ^5.0.0
6646-
typescript: ~4.1.3
6647-
checksum: 2734e7779377b0956e70377114c599a9cc656c85c4b53e16fb55c561f3c548493f8c8dbc3c27faab3f1acf953c7e9a08b1bea368ae4cc5a22e8d0f30768eec7d
6648-
languageName: node
6649-
linkType: hard
6650-
66516627
"@tsconfig/node10@npm:^1.0.7":
66526628
version: 1.0.8
66536629
resolution: "@tsconfig/node10@npm:1.0.8"
@@ -7326,6 +7302,13 @@ __metadata:
73267302
languageName: node
73277303
linkType: hard
73287304

7305+
"@types/semver@npm:^7.3.9":
7306+
version: 7.3.9
7307+
resolution: "@types/semver@npm:7.3.9"
7308+
checksum: 60bfcfdfa7f937be2c6f4b37ddb6714fb0f27b05fe4cbdfdd596a97d35ed95d13ee410efdd88e72a66449d0384220bf20055ab7d6b5df10de4990fbd20e5cbe0
7309+
languageName: node
7310+
linkType: hard
7311+
73297312
"@types/set-cookie-parser@npm:^2.4.0":
73307313
version: 2.4.0
73317314
resolution: "@types/set-cookie-parser@npm:2.4.0"
@@ -10358,13 +10341,6 @@ __metadata:
1035810341
languageName: node
1035910342
linkType: hard
1036010343

10361-
"code-block-writer@npm:^10.1.1":
10362-
version: 10.1.1
10363-
resolution: "code-block-writer@npm:10.1.1"
10364-
checksum: e048037acbcbda19fca62a3a63e4a64226ea6b5dc0fad7632d34a88c1165b29a357e5e19f0497811e9911472e824ab85f68176f40e439da87e051908956eb47c
10365-
languageName: node
10366-
linkType: hard
10367-
1036810344
"code-point-at@npm:^1.0.0":
1036910345
version: 1.1.0
1037010346
resolution: "code-point-at@npm:1.1.0"
@@ -16140,13 +16116,6 @@ fsevents@^1.2.7:
1614016116
languageName: node
1614116117
linkType: hard
1614216118

16143-
"is-negated-glob@npm:^1.0.0":
16144-
version: 1.0.0
16145-
resolution: "is-negated-glob@npm:1.0.0"
16146-
checksum: 2a767da06435b492daa98d3049480f0b7032abd5bfd3930ac01dbe9d6fcae04f2b3d883c6dca6b9c0c3f8a703952643c78540151c3eb1a2fe90fec543d61d241
16147-
languageName: node
16148-
linkType: hard
16149-
1615016119
"is-negative-zero@npm:^2.0.1":
1615116120
version: 2.0.1
1615216121
resolution: "is-negative-zero@npm:2.0.1"
@@ -18965,19 +18934,6 @@ fsevents@^1.2.7:
1896518934
languageName: node
1896618935
linkType: hard
1896718936

18968-
"multimatch@npm:^5.0.0":
18969-
version: 5.0.0
18970-
resolution: "multimatch@npm:5.0.0"
18971-
dependencies:
18972-
"@types/minimatch": ^3.0.3
18973-
array-differ: ^3.0.0
18974-
array-union: ^2.1.0
18975-
arrify: ^2.0.1
18976-
minimatch: ^3.0.4
18977-
checksum: 82c8030a53af965cab48da22f1b0f894ef99e16ee680dabdfbd38d2dfacc3c8208c475203d747afd9e26db44118ed0221d5a0d65268c864f06d6efc7ac6df812
18978-
languageName: node
18979-
linkType: hard
18980-
1898118937
"mute-stream@npm:0.0.8":
1898218938
version: 0.0.8
1898318939
resolution: "mute-stream@npm:0.0.8"
@@ -19495,9 +19451,9 @@ fsevents@^1.2.7:
1949519451
languageName: node
1949619452
linkType: hard
1949719453

19498-
"oazapfts@npm:3.4.0":
19499-
version: 3.4.0
19500-
resolution: "oazapfts@npm:3.4.0"
19454+
"oazapfts@npm:^3.5.0":
19455+
version: 3.5.0
19456+
resolution: "oazapfts@npm:3.5.0"
1950119457
dependencies:
1950219458
"@apidevtools/swagger-parser": ^10.0.1
1950319459
lodash: ^4.17.20
@@ -19506,7 +19462,7 @@ fsevents@^1.2.7:
1950619462
typescript: ^4.1.2
1950719463
bin:
1950819464
oazapfts: lib/codegen/cli.js
19509-
checksum: 4d1f101d6e39bd93b3c435fa525a121edaa171efaf50e641f3c65c2e548921fe1e0234fbcf3ec77742b5f386e46341cc8e7785c02c401563821f0b223797e64f
19465+
checksum: 5ffc99c88afc300313c77c683953c8da56a5d190fe01c3d5128c6c1df4dd14eb27852344b880a4d91de811911826a31c58f9ac8dc060bef8fe05277a066035b5
1951019466
languageName: node
1951119467
linkType: hard
1951219468

@@ -26062,17 +26018,6 @@ resolve@~1.19.0:
2606226018
languageName: node
2606326019
linkType: hard
2606426020

26065-
"ts-morph@npm:^9.1.0":
26066-
version: 9.1.0
26067-
resolution: "ts-morph@npm:9.1.0"
26068-
dependencies:
26069-
"@dsherret/to-absolute-glob": ^2.0.2
26070-
"@ts-morph/common": ~0.7.0
26071-
code-block-writer: ^10.1.1
26072-
checksum: e1376f32e96bd8110707818a38374bfdb9f89c78ebbcd7b028bb73c6b052ec59fd209faf1abbfa5b1b2c7685a35bb58925812eaa10173e62eea69fe2151b6e5f
26073-
languageName: node
26074-
linkType: hard
26075-
2607626021
"ts-node@npm:^10.0.0":
2607726022
version: 10.0.0
2607826023
resolution: "ts-node@npm:10.0.0"
@@ -26370,33 +26315,13 @@ resolve@~1.19.0:
2637026315
languageName: node
2637126316
linkType: hard
2637226317

26373-
"typescript@npm:^4.1.2":
26374-
version: 4.4.4
26375-
resolution: "typescript@npm:4.4.4"
26318+
"typescript@npm:>=4.1 <=4.5, typescript@npm:^4.1.2, typescript@npm:^4.1.3, typescript@npm:^4.3.4":
26319+
version: 4.5.2
26320+
resolution: "typescript@npm:4.5.2"
2637626321
bin:
2637726322
tsc: bin/tsc
2637826323
tsserver: bin/tsserver
26379-
checksum: 89ecb8436bb48ef5594d49289f5f89103071716b6e4844278f4fb3362856e31203e187a9c76d205c3f0b674d221a058fd28310dbcbcf5d95e9a57229bb5203f1
26380-
languageName: node
26381-
linkType: hard
26382-
26383-
"typescript@npm:^4.1.3, typescript@npm:^4.3.4, typescript@npm:~4.3.2":
26384-
version: 4.3.4
26385-
resolution: "typescript@npm:4.3.4"
26386-
bin:
26387-
tsc: bin/tsc
26388-
tsserver: bin/tsserver
26389-
checksum: 75e1f2769c7ff38c718523d05eaf1c2611dbf92c0ab0f85f603ead9bb23416af2009a5dac46e76ef6a207a8508fa53f51b43a41f2a91b1241b53cd744c16128c
26390-
languageName: node
26391-
linkType: hard
26392-
26393-
"typescript@npm:~4.1.3":
26394-
version: 4.1.6
26395-
resolution: "typescript@npm:4.1.6"
26396-
bin:
26397-
tsc: bin/tsc
26398-
tsserver: bin/tsserver
26399-
checksum: 54aed909f94b16178c8a8d8911871b4e1c04454a3e6c82166715e28083e7ce6271e4d1df6f82c89544a4759b07aec780785032534e9c93b254e2107a18712c05
26324+
checksum: 74f9ce65d532bdf5d0214b3f60cf37992180023388c87a11ee6f838a803067ef0b63c600fa501b0deb07f989257dce1e244c9635ed79feca40bbccf6e0aa1ebc
2640026325
languageName: node
2640126326
linkType: hard
2640226327

@@ -26410,53 +26335,53 @@ resolve@~1.19.0:
2641026335
languageName: node
2641126336
linkType: hard
2641226337

26413-
"typescript@patch:typescript@4.1.3#~builtin<compat/typescript>":
26414-
version: 4.1.3
26415-
resolution: "typescript@patch:typescript@npm%3A4.1.3#~builtin<compat/typescript>::version=4.1.3&hash=ddd1e8"
26338+
"typescript@npm:~4.3.2":
26339+
version: 4.3.4
26340+
resolution: "typescript@npm:4.3.4"
2641626341
bin:
2641726342
tsc: bin/tsc
2641826343
tsserver: bin/tsserver
26419-
checksum: ed3df76d9b6efb448e5e73bca671698cda353a3807199ad95c78782a857e7685ccc94b799ac885423ced65ee21c87cbbeb823642c5dfd715efae5ebbc6137070
26344+
checksum: 75e1f2769c7ff38c718523d05eaf1c2611dbf92c0ab0f85f603ead9bb23416af2009a5dac46e76ef6a207a8508fa53f51b43a41f2a91b1241b53cd744c16128c
2642026345
languageName: node
2642126346
linkType: hard
2642226347

26423-
"typescript@patch:typescript@^4.1.2#~builtin<compat/typescript>":
26424-
version: 4.4.4
26425-
resolution: "typescript@patch:typescript@npm%3A4.4.4#~builtin<compat/typescript>::version=4.4.4&hash=ddd1e8"
26348+
"typescript@patch:typescript@4.1.3#~builtin<compat/typescript>":
26349+
version: 4.1.3
26350+
resolution: "typescript@patch:typescript@npm%3A4.1.3#~builtin<compat/typescript>::version=4.1.3&hash=ddd1e8"
2642626351
bin:
2642726352
tsc: bin/tsc
2642826353
tsserver: bin/tsserver
26429-
checksum: bd629ad0da4a15d79aaad56baf3ee7d96f6a181760d430ae77f8c5325df7bffd9edee57544a3970e3651e8b796fe03a5838a7eb39c6d46cc3866c0b23d36a0dd
26354+
checksum: ed3df76d9b6efb448e5e73bca671698cda353a3807199ad95c78782a857e7685ccc94b799ac885423ced65ee21c87cbbeb823642c5dfd715efae5ebbc6137070
2643026355
languageName: node
2643126356
linkType: hard
2643226357

26433-
"typescript@patch:typescript@^4.1.3#~builtin<compat/typescript>, typescript@patch:typescript@^4.3.4#~builtin<compat/typescript>, typescript@patch:typescript@~4.3.2#~builtin<compat/typescript>":
26434-
version: 4.3.4
26435-
resolution: "typescript@patch:typescript@npm%3A4.3.4#~builtin<compat/typescript>::version=4.3.4&hash=ddd1e8"
26358+
"typescript@patch:typescript@>=4.1 <=4.5#~builtin<compat/typescript>, typescript@patch:typescript@^4.1.2#~builtin<compat/typescript>, typescript@patch:typescript@^4.1.3#~builtin<compat/typescript>, typescript@patch:typescript@^4.3.4#~builtin<compat/typescript>":
26359+
version: 4.5.2
26360+
resolution: "typescript@patch:typescript@npm%3A4.5.2#~builtin<compat/typescript>::version=4.5.2&hash=ddd1e8"
2643626361
bin:
2643726362
tsc: bin/tsc
2643826363
tsserver: bin/tsserver
26439-
checksum: 49f3e6734d6f27c1931d3a665439350d9015b28eee87ba26ebcae0ba35fc609962ad8eb0b09f0324366497d65260c4222b8735098325bba46d508b5cab7b4640
26364+
checksum: 24a439e062a05e3285a4f0e8a40644116ecdca89f3e908bed01e5a01b9aee747e3bcf0e85fe9e017e5ebf0c0863437c39479f2616f55a244c2d82d37022cdc4f
2644026365
languageName: node
2644126366
linkType: hard
2644226367

26443-
"typescript@patch:typescript@~4.1.3#~builtin<compat/typescript>":
26444-
version: 4.1.6
26445-
resolution: "typescript@patch:typescript@npm%3A4.1.6#~builtin<compat/typescript>::version=4.1.6&hash=ddd1e8"
26368+
"typescript@patch:typescript@~4.2.4#~builtin<compat/typescript>":
26369+
version: 4.2.4
26370+
resolution: "typescript@patch:typescript@npm%3A4.2.4#~builtin<compat/typescript>::version=4.2.4&hash=ddd1e8"
2644626371
bin:
2644726372
tsc: bin/tsc
2644826373
tsserver: bin/tsserver
26449-
checksum: 3bd9915f236817e4e2d32dd0d90e8902875929f014bb87a478000e32adda91d12f0425931ee6f9d6a2bc7d0c9242588fcee1050ac294497dfabf27d3d73b335c
26374+
checksum: bafcad6990f5d8ea9ccff09e440ce42630b2e42a5752dde5455b55c806ae43f8726a03770577d4fc6c2aa624597f796725cc6fe2c173f558a753a2f23a5198a4
2645026375
languageName: node
2645126376
linkType: hard
2645226377

26453-
"typescript@patch:typescript@~4.2.4#~builtin<compat/typescript>":
26454-
version: 4.2.4
26455-
resolution: "typescript@patch:typescript@npm%3A4.2.4#~builtin<compat/typescript>::version=4.2.4&hash=ddd1e8"
26378+
"typescript@patch:typescript@~4.3.2#~builtin<compat/typescript>":
26379+
version: 4.3.4
26380+
resolution: "typescript@patch:typescript@npm%3A4.3.4#~builtin<compat/typescript>::version=4.3.4&hash=ddd1e8"
2645626381
bin:
2645726382
tsc: bin/tsc
2645826383
tsserver: bin/tsserver
26459-
checksum: bafcad6990f5d8ea9ccff09e440ce42630b2e42a5752dde5455b55c806ae43f8726a03770577d4fc6c2aa624597f796725cc6fe2c173f558a753a2f23a5198a4
26384+
checksum: 49f3e6734d6f27c1931d3a665439350d9015b28eee87ba26ebcae0ba35fc609962ad8eb0b09f0324366497d65260c4222b8735098325bba46d508b5cab7b4640
2646026385
languageName: node
2646126386
linkType: hard
2646226387

0 commit comments

Comments
 (0)