Skip to content

Commit fe74bc6

Browse files
committed
Applying some deprecation fixes and removing some warnings
1 parent cda3ef1 commit fe74bc6

File tree

4 files changed

+45
-80
lines changed

4 files changed

+45
-80
lines changed

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
#!/usr/bin/env node
22

3-
import program from 'commander';
43
import { dirname, resolve } from 'path';
54
import { generateEndpoints, parseConfig } from '../';
6-
import semver from 'semver';
7-
import { version as tsVersion } from 'typescript';
85

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-
}
6+
import program from 'commander';
147

158
let ts = false;
169
try {

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

Lines changed: 26 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import ts from 'typescript';
21
import { factory } from './utils/factory';
2+
import ts from 'typescript';
33

44
const defaultEndpointBuilder = factory.createIdentifier('build');
55

@@ -12,7 +12,6 @@ export function generateObjectProperties(obj: ObjectPropertyDefinitions) {
1212

1313
export function generateImportNode(pkg: string, namedImports: Record<string, string>, defaultImportName?: string) {
1414
return factory.createImportDeclaration(
15-
undefined,
1615
undefined,
1716
factory.createImportClause(
1817
false,
@@ -44,17 +43,7 @@ export function generateCreateApiCall({
4443
endpoints: factory.createArrowFunction(
4544
undefined,
4645
undefined,
47-
[
48-
factory.createParameterDeclaration(
49-
undefined,
50-
undefined,
51-
undefined,
52-
endpointBuilder,
53-
undefined,
54-
undefined,
55-
undefined
56-
),
57-
],
46+
[factory.createParameterDeclaration(undefined, undefined, endpointBuilder, undefined, undefined, undefined)],
5847
undefined,
5948
factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
6049
factory.createParenthesizedExpression(endpointDefinitions)
@@ -67,30 +56,32 @@ export function generateCreateApiCall({
6756
const enhanceEndpointsObjectLiteralExpression = factory.createObjectLiteralExpression(
6857
[factory.createShorthandPropertyAssignment(factory.createIdentifier('addTagTypes'), undefined)],
6958
true
70-
)
59+
);
7160
return factory.createVariableStatement(
7261
undefined,
7362
factory.createVariableDeclarationList(
74-
[factory.createVariableDeclaration(
75-
factory.createIdentifier("injectedRtkApi"),
76-
undefined,
77-
undefined,
78-
factory.createCallExpression(
79-
factory.createPropertyAccessExpression(
80-
factory.createCallExpression(
81-
factory.createPropertyAccessExpression(
82-
factory.createIdentifier("api"),
83-
factory.createIdentifier("enhanceEndpoints")
63+
[
64+
factory.createVariableDeclaration(
65+
factory.createIdentifier('injectedRtkApi'),
66+
undefined,
67+
undefined,
68+
factory.createCallExpression(
69+
factory.createPropertyAccessExpression(
70+
factory.createCallExpression(
71+
factory.createPropertyAccessExpression(
72+
factory.createIdentifier('api'),
73+
factory.createIdentifier('enhanceEndpoints')
74+
),
75+
undefined,
76+
[enhanceEndpointsObjectLiteralExpression]
8477
),
85-
undefined,
86-
[enhanceEndpointsObjectLiteralExpression]
78+
factory.createIdentifier('injectEndpoints')
8779
),
88-
factory.createIdentifier("injectEndpoints")
89-
),
90-
undefined,
91-
[injectEndpointsObjectLiteralExpression]
92-
)
93-
)],
80+
undefined,
81+
[injectEndpointsObjectLiteralExpression]
82+
)
83+
),
84+
],
9485
ts.NodeFlags.Const
9586
)
9687
);
@@ -145,21 +136,16 @@ export function generateEndpointDefinition({
145136
factory.createIdentifier(type === 'query' ? 'providesTags' : 'invalidatesTags'),
146137
factory.createArrayLiteralExpression(tags.map((tag) => factory.createStringLiteral(tag), false))
147138
)
148-
)
139+
);
149140
}
150141
return factory.createPropertyAssignment(
151142
factory.createIdentifier(operationName),
152143

153144
factory.createCallExpression(
154145
factory.createPropertyAccessExpression(endpointBuilder, factory.createIdentifier(type)),
155146
[Response, QueryArg],
156-
[
157-
factory.createObjectLiteralExpression(
158-
objectProperties,
159-
true
160-
),
161-
]
162-
),
147+
[factory.createObjectLiteralExpression(objectProperties, true)]
148+
)
163149
);
164150
}
165151

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

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
1-
import ts from 'typescript';
21
import * as path from 'path';
3-
import { camelCase } from 'lodash';
2+
43
import ApiGenerator, {
54
getOperationName as _getOperationName,
65
getReferenceName,
76
isReference,
87
supportDeepObjects,
98
} from 'oazapfts/lib/codegen/generate';
9+
import type { EndpointMatcher, EndpointOverrides, GenerationOptions, OperationDefinition, TextMatcher } from './types';
10+
import { capitalize, getOperationDefinitions, getV3Doc, removeUndefined, isQuery as testIsQuery } from './utils';
1011
import {
11-
createQuestionToken,
12-
keywordType,
1312
createPropertyAssignment,
13+
createQuestionToken,
1414
isValidIdentifier,
15+
keywordType,
1516
} from 'oazapfts/lib/codegen/tscodegen';
16-
import type { OpenAPIV3 } from 'openapi-types';
17-
import { generateReactHooks } from './generators/react-hooks';
18-
import type { EndpointMatcher, EndpointOverrides, GenerationOptions, OperationDefinition, TextMatcher } from './types';
19-
import { capitalize, getOperationDefinitions, getV3Doc, isQuery as testIsQuery, removeUndefined } from './utils';
20-
import { generateTagTypes } from './codegen';
17+
import { generateCreateApiCall, generateEndpointDefinition, generateImportNode, generateTagTypes } from './codegen';
18+
2119
import type { ObjectPropertyDefinitions } from './codegen';
22-
import { generateCreateApiCall, generateEndpointDefinition, generateImportNode } from './codegen';
20+
import type { OpenAPIV3 } from 'openapi-types';
21+
import { camelCase } from 'lodash';
2322
import { factory } from './utils/factory';
23+
import { generateReactHooks } from './generators/react-hooks';
24+
import ts from 'typescript';
2425

2526
const generatedApiName = 'injectedRtkApi';
2627

@@ -133,7 +134,7 @@ export async function generateApi(
133134
}
134135
apiFile = apiFile.replace(/\.[jt]sx?$/, '');
135136

136-
const sourceCode = printer.printNode(
137+
return printer.printNode(
137138
ts.EmitHint.Unspecified,
138139
factory.createSourceFile(
139140
[
@@ -152,7 +153,6 @@ export async function generateApi(
152153
),
153154
}),
154155
factory.createExportDeclaration(
155-
undefined,
156156
undefined,
157157
false,
158158
factory.createNamedExports([
@@ -183,8 +183,6 @@ export async function generateApi(
183183
resultFile
184184
);
185185

186-
return sourceCode;
187-
188186
function extractAllTagTypes({ operationDefinitions }: { operationDefinitions: OperationDefinition[] }) {
189187
let allTagTypes = new Set<string>();
190188

@@ -245,7 +243,6 @@ export async function generateApi(
245243
const ResponseTypeName = factory.createTypeReferenceNode(
246244
registerInterface(
247245
factory.createTypeAliasDeclaration(
248-
undefined,
249246
[factory.createModifier(ts.SyntaxKind.ExportKeyword)],
250247
capitalize(operationName + responseSuffix),
251248
undefined,
@@ -262,7 +259,7 @@ export async function generateApi(
262259
const allNames = parameters.map((p) => p.name);
263260
const queryArg: QueryArgDefinitions = {};
264261
for (const param of parameters) {
265-
const isPureSnakeCase = /^[a-zA-Z][a-zA-Z0-9_]*$/.test(param.name);
262+
const isPureSnakeCase = /^[a-zA-Z][\\w]*$/.test(param.name);
266263
const camelCaseName = camelCase(param.name);
267264

268265
const name = isPureSnakeCase && !allNames.includes(camelCaseName) ? camelCaseName : param.name;
@@ -312,7 +309,6 @@ export async function generateApi(
312309
const QueryArg = factory.createTypeReferenceNode(
313310
registerInterface(
314311
factory.createTypeAliasDeclaration(
315-
undefined,
316312
[factory.createModifier(ts.SyntaxKind.ExportKeyword)],
317313
capitalize(operationName + argSuffix),
318314
undefined,
@@ -394,17 +390,7 @@ export async function generateApi(
394390
undefined,
395391
undefined,
396392
Object.keys(queryArg).length
397-
? [
398-
factory.createParameterDeclaration(
399-
undefined,
400-
undefined,
401-
undefined,
402-
rootObject,
403-
undefined,
404-
undefined,
405-
undefined
406-
),
407-
]
393+
? [factory.createParameterDeclaration(undefined, undefined, rootObject, undefined, undefined, undefined)]
408394
: [],
409395
undefined,
410396
factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
@@ -464,7 +450,7 @@ function generatePathExpression(
464450
) {
465451
const expressions: Array<[string, string]> = [];
466452

467-
const head = path.replace(/\{(.*?)\}(.*?)(?=\{|$)/g, (_, expression, literal) => {
453+
const head = path.replace(/\{(.*?)}(.*?)(?=\{|$)/g, (_, expression, literal) => {
468454
const param = pathParameters.find((p) => p.originalName === expression);
469455
if (!param) {
470456
throw new Error(`path parameter ${expression} does not seem to be defined in '${path}'!`);

yarn.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6545,7 +6545,7 @@ __metadata:
65456545
swagger2openapi: ^7.0.4
65466546
ts-jest: ^27
65476547
ts-node: ^10.4.0
6548-
typescript: ">=4.1 <=4.5"
6548+
typescript: ^4.9.3
65496549
yalc: ^1.0.0-pre.47
65506550
bin:
65516551
rtk-query-codegen-openapi: lib/bin/cli.js
@@ -26755,7 +26755,7 @@ fsevents@^1.2.7:
2675526755
languageName: node
2675626756
linkType: hard
2675726757

26758-
"typescript@npm:>=4.1 <=4.5, typescript@npm:^4.1.3, typescript@npm:^4.3.4":
26758+
"typescript@npm:^4.1.3, typescript@npm:^4.3.4":
2675926759
version: 4.5.2
2676026760
resolution: "typescript@npm:4.5.2"
2676126761
bin:
@@ -26815,7 +26815,7 @@ fsevents@^1.2.7:
2681526815
languageName: node
2681626816
linkType: hard
2681726817

26818-
"typescript@patch:typescript@>=4.1 <=4.5#~builtin<compat/typescript>, typescript@patch:typescript@^4.1.3#~builtin<compat/typescript>, typescript@patch:typescript@^4.3.4#~builtin<compat/typescript>":
26818+
"typescript@patch:typescript@^4.1.3#~builtin<compat/typescript>, typescript@patch:typescript@^4.3.4#~builtin<compat/typescript>":
2681926819
version: 4.5.2
2682026820
resolution: "typescript@patch:typescript@npm%3A4.5.2#~builtin<compat/typescript>::version=4.5.2&hash=701156"
2682126821
bin:

0 commit comments

Comments
 (0)