1
- import ts from 'typescript' ;
2
1
import * as path from 'path' ;
3
- import { camelCase } from 'lodash' ;
2
+
4
3
import ApiGenerator , {
5
4
getOperationName as _getOperationName ,
6
5
getReferenceName ,
7
6
isReference ,
8
7
supportDeepObjects ,
9
8
} 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' ;
10
11
import {
11
- createQuestionToken ,
12
- keywordType ,
13
12
createPropertyAssignment ,
13
+ createQuestionToken ,
14
14
isValidIdentifier ,
15
+ keywordType ,
15
16
} 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
+
21
19
import type { ObjectPropertyDefinitions } from './codegen' ;
22
- import { generateCreateApiCall , generateEndpointDefinition , generateImportNode } from './codegen' ;
20
+ import type { OpenAPIV3 } from 'openapi-types' ;
21
+ import { camelCase } from 'lodash' ;
23
22
import { factory } from './utils/factory' ;
23
+ import { generateReactHooks } from './generators/react-hooks' ;
24
+ import ts from 'typescript' ;
24
25
25
26
const generatedApiName = 'injectedRtkApi' ;
26
27
@@ -133,7 +134,7 @@ export async function generateApi(
133
134
}
134
135
apiFile = apiFile . replace ( / \. [ j t ] s x ? $ / , '' ) ;
135
136
136
- const sourceCode = printer . printNode (
137
+ return printer . printNode (
137
138
ts . EmitHint . Unspecified ,
138
139
factory . createSourceFile (
139
140
[
@@ -152,7 +153,6 @@ export async function generateApi(
152
153
) ,
153
154
} ) ,
154
155
factory . createExportDeclaration (
155
- undefined ,
156
156
undefined ,
157
157
false ,
158
158
factory . createNamedExports ( [
@@ -183,8 +183,6 @@ export async function generateApi(
183
183
resultFile
184
184
) ;
185
185
186
- return sourceCode ;
187
-
188
186
function extractAllTagTypes ( { operationDefinitions } : { operationDefinitions : OperationDefinition [ ] } ) {
189
187
let allTagTypes = new Set < string > ( ) ;
190
188
@@ -245,7 +243,6 @@ export async function generateApi(
245
243
const ResponseTypeName = factory . createTypeReferenceNode (
246
244
registerInterface (
247
245
factory . createTypeAliasDeclaration (
248
- undefined ,
249
246
[ factory . createModifier ( ts . SyntaxKind . ExportKeyword ) ] ,
250
247
capitalize ( operationName + responseSuffix ) ,
251
248
undefined ,
@@ -262,7 +259,7 @@ export async function generateApi(
262
259
const allNames = parameters . map ( ( p ) => p . name ) ;
263
260
const queryArg : QueryArgDefinitions = { } ;
264
261
for ( const param of parameters ) {
265
- const isPureSnakeCase = / ^ [ a - z A - Z ] [ a - z A - Z 0 - 9 _ ] * $ / . test ( param . name ) ;
262
+ const isPureSnakeCase = / ^ [ a - z A - Z ] [ \\ w ] * $ / . test ( param . name ) ;
266
263
const camelCaseName = camelCase ( param . name ) ;
267
264
268
265
const name = isPureSnakeCase && ! allNames . includes ( camelCaseName ) ? camelCaseName : param . name ;
@@ -312,7 +309,6 @@ export async function generateApi(
312
309
const QueryArg = factory . createTypeReferenceNode (
313
310
registerInterface (
314
311
factory . createTypeAliasDeclaration (
315
- undefined ,
316
312
[ factory . createModifier ( ts . SyntaxKind . ExportKeyword ) ] ,
317
313
capitalize ( operationName + argSuffix ) ,
318
314
undefined ,
@@ -394,17 +390,7 @@ export async function generateApi(
394
390
undefined ,
395
391
undefined ,
396
392
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 ) ]
408
394
: [ ] ,
409
395
undefined ,
410
396
factory . createToken ( ts . SyntaxKind . EqualsGreaterThanToken ) ,
@@ -464,7 +450,7 @@ function generatePathExpression(
464
450
) {
465
451
const expressions : Array < [ string , string ] > = [ ] ;
466
452
467
- const head = path . replace ( / \{ ( .* ?) \ }( .* ?) (? = \{ | $ ) / g, ( _ , expression , literal ) => {
453
+ const head = path . replace ( / \{ ( .* ?) } ( .* ?) (? = \{ | $ ) / g, ( _ , expression , literal ) => {
468
454
const param = pathParameters . find ( ( p ) => p . originalName === expression ) ;
469
455
if ( ! param ) {
470
456
throw new Error ( `path parameter ${ expression } does not seem to be defined in '${ path } '!` ) ;
0 commit comments