1
- import * as path from 'path ' ;
2
-
1
+ import { camelCase } from 'lodash ' ;
2
+ import path from 'node:path' ;
3
3
import ApiGenerator , {
4
4
getOperationName as _getOperationName ,
5
5
getReferenceName ,
6
6
isReference ,
7
7
supportDeepObjects ,
8
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' ;
11
9
import {
12
10
createPropertyAssignment ,
13
11
createQuestionToken ,
14
12
isValidIdentifier ,
15
13
keywordType ,
16
14
} from 'oazapfts/lib/codegen/tscodegen' ;
17
- import { generateCreateApiCall , generateEndpointDefinition , generateImportNode , generateTagTypes } from './codegen' ;
18
-
19
- import type { ObjectPropertyDefinitions } from './codegen' ;
20
15
import type { OpenAPIV3 } from 'openapi-types' ;
21
- import { camelCase } from 'lodash' ;
22
- import { factory } from './utils/factory' ;
23
- import { generateReactHooks } from './generators/react-hooks' ;
24
16
import ts from 'typescript' ;
17
+ import type { ObjectPropertyDefinitions } from './codegen' ;
18
+ import { generateCreateApiCall , generateEndpointDefinition , generateImportNode , generateTagTypes } from './codegen' ;
19
+ import { generateReactHooks } from './generators/react-hooks' ;
20
+ import type { EndpointMatcher , EndpointOverrides , GenerationOptions , OperationDefinition , TextMatcher } from './types' ;
21
+ import { capitalize , getOperationDefinitions , getV3Doc , removeUndefined , isQuery as testIsQuery } from './utils' ;
22
+ import { factory } from './utils/factory' ;
25
23
26
24
const generatedApiName = 'injectedRtkApi' ;
27
25
@@ -175,13 +173,13 @@ export async function generateApi(
175
173
...apiGen . enumAliases ,
176
174
...( hooks
177
175
? [
178
- generateReactHooks ( {
179
- exportName : generatedApiName ,
180
- operationDefinitions,
181
- endpointOverrides,
182
- config : hooks ,
183
- } ) ,
184
- ]
176
+ generateReactHooks ( {
177
+ exportName : generatedApiName ,
178
+ operationDefinitions,
179
+ endpointOverrides,
180
+ config : hooks ,
181
+ } ) ,
182
+ ]
185
183
: [ ] ) ,
186
184
] ,
187
185
factory . createToken ( ts . SyntaxKind . EndOfFileToken ) ,
@@ -301,7 +299,9 @@ export async function generateApi(
301
299
const body = apiGen . resolve ( requestBody ) ;
302
300
const schema = apiGen . getSchemaFromContent ( body . content ) ;
303
301
const type = apiGen . getTypeFromSchema ( schema ) ;
304
- const schemaName = camelCase ( ( type as any ) . name || getReferenceName ( schema ) || ( "title" in schema && schema . title ) || 'body' ) ;
302
+ const schemaName = camelCase (
303
+ ( type as any ) . name || getReferenceName ( schema ) || ( 'title' in schema && schema . title ) || 'body'
304
+ ) ;
305
305
const name = generateName ( schemaName in queryArg ? 'body' : schemaName , 'body' ) ;
306
306
307
307
queryArg [ name ] = {
@@ -335,19 +335,19 @@ export async function generateApi(
335
335
? isFlatArg
336
336
? withQueryComment ( { ...queryArgValues [ 0 ] . type } , queryArgValues [ 0 ] , false )
337
337
: factory . createTypeLiteralNode (
338
- queryArgValues . map ( ( def ) =>
339
- withQueryComment (
340
- factory . createPropertySignature (
341
- undefined ,
342
- propertyName ( def . name ) ,
343
- createQuestionToken ( ! def . required ) ,
344
- def . type
345
- ) ,
346
- def ,
347
- true
338
+ queryArgValues . map ( ( def ) =>
339
+ withQueryComment (
340
+ factory . createPropertySignature (
341
+ undefined ,
342
+ propertyName ( def . name ) ,
343
+ createQuestionToken ( ! def . required ) ,
344
+ def . type
345
+ ) ,
346
+ def ,
347
+ true
348
+ )
348
349
)
349
350
)
350
- )
351
351
: factory . createKeywordTypeNode ( ts . SyntaxKind . VoidKeyword )
352
352
)
353
353
) . name
@@ -391,18 +391,18 @@ export async function generateApi(
391
391
return parameters . length === 0
392
392
? undefined
393
393
: factory . createPropertyAssignment (
394
- factory . createIdentifier ( propertyName ) ,
395
- factory . createObjectLiteralExpression (
396
- parameters . map (
397
- ( param ) =>
398
- createPropertyAssignment (
399
- param . originalName ,
400
- isFlatArg ? rootObject : accessProperty ( rootObject , param . name )
401
- ) ,
402
- true
394
+ factory . createIdentifier ( propertyName ) ,
395
+ factory . createObjectLiteralExpression (
396
+ parameters . map (
397
+ ( param ) =>
398
+ createPropertyAssignment (
399
+ param . originalName ,
400
+ isFlatArg ? rootObject : accessProperty ( rootObject , param . name )
401
+ ) ,
402
+ true
403
+ )
403
404
)
404
- )
405
- ) ;
405
+ ) ;
406
406
}
407
407
408
408
return factory . createArrowFunction (
@@ -423,17 +423,17 @@ export async function generateApi(
423
423
isQuery && verb . toUpperCase ( ) === 'GET'
424
424
? undefined
425
425
: factory . createPropertyAssignment (
426
- factory . createIdentifier ( 'method' ) ,
427
- factory . createStringLiteral ( verb . toUpperCase ( ) )
428
- ) ,
426
+ factory . createIdentifier ( 'method' ) ,
427
+ factory . createStringLiteral ( verb . toUpperCase ( ) )
428
+ ) ,
429
429
bodyParameter === undefined
430
430
? undefined
431
431
: factory . createPropertyAssignment (
432
- factory . createIdentifier ( 'body' ) ,
433
- isFlatArg
434
- ? rootObject
435
- : factory . createPropertyAccessExpression ( rootObject , factory . createIdentifier ( bodyParameter . name ) )
436
- ) ,
432
+ factory . createIdentifier ( 'body' ) ,
433
+ isFlatArg
434
+ ? rootObject
435
+ : factory . createPropertyAccessExpression ( rootObject , factory . createIdentifier ( bodyParameter . name ) )
436
+ ) ,
437
437
createObjectLiteralProperty ( pickParams ( 'cookie' ) , 'cookies' ) ,
438
438
createObjectLiteralProperty ( pickParams ( 'header' ) , 'headers' ) ,
439
439
createObjectLiteralProperty ( pickParams ( 'query' ) , 'params' ) ,
@@ -445,12 +445,12 @@ export async function generateApi(
445
445
}
446
446
447
447
// eslint-disable-next-line no-empty-pattern
448
- function generateQueryEndpointProps ( { } : { operationDefinition : OperationDefinition } ) : ObjectPropertyDefinitions {
448
+ function generateQueryEndpointProps ( { } : { operationDefinition : OperationDefinition } ) : ObjectPropertyDefinitions {
449
449
return { } ; /* TODO needs implementation - skip for now */
450
450
}
451
451
452
452
// eslint-disable-next-line no-empty-pattern
453
- function generateMutationEndpointProps ( { } : { operationDefinition : OperationDefinition } ) : ObjectPropertyDefinitions {
453
+ function generateMutationEndpointProps ( { } : { operationDefinition : OperationDefinition } ) : ObjectPropertyDefinitions {
454
454
return { } ; /* TODO needs implementation - skip for now */
455
455
}
456
456
}
@@ -480,16 +480,16 @@ function generatePathExpression(
480
480
481
481
return expressions . length
482
482
? factory . createTemplateExpression (
483
- factory . createTemplateHead ( head ) ,
484
- expressions . map ( ( [ prop , literal ] , index ) =>
485
- factory . createTemplateSpan (
486
- isFlatArg ? rootObject : accessProperty ( rootObject , prop ) ,
487
- index === expressions . length - 1
488
- ? factory . createTemplateTail ( literal )
489
- : factory . createTemplateMiddle ( literal )
483
+ factory . createTemplateHead ( head ) ,
484
+ expressions . map ( ( [ prop , literal ] , index ) =>
485
+ factory . createTemplateSpan (
486
+ isFlatArg ? rootObject : accessProperty ( rootObject , prop ) ,
487
+ index === expressions . length - 1
488
+ ? factory . createTemplateTail ( literal )
489
+ : factory . createTemplateMiddle ( literal )
490
+ )
490
491
)
491
492
)
492
- )
493
493
: factory . createNoSubstitutionTemplateLiteral ( head ) ;
494
494
}
495
495
@@ -500,13 +500,13 @@ type QueryArgDefinition = {
500
500
required ?: boolean ;
501
501
param ?: OpenAPIV3 . ParameterObject ;
502
502
} & (
503
- | {
503
+ | {
504
504
origin : 'param' ;
505
505
param : OpenAPIV3 . ParameterObject ;
506
506
}
507
- | {
507
+ | {
508
508
origin : 'body' ;
509
509
body : OpenAPIV3 . RequestBodyObject ;
510
510
}
511
- ) ;
511
+ ) ;
512
512
type QueryArgDefinitions = Record < string , QueryArgDefinition > ;
0 commit comments