1
+ import { resolve } from 'path' ;
1
2
import { HttpClient } from './HttpClient' ;
2
3
import { parse as parseV2 } from './openApi/v2' ;
3
4
import { parse as parseV3 } from './openApi/v3' ;
@@ -13,6 +14,10 @@ export { HttpClient } from './HttpClient';
13
14
export type Options = {
14
15
input : string | Record < string , any > ;
15
16
output : string ;
17
+ outputCore ?: string ;
18
+ outputServices ?: string ;
19
+ outputModels ?: string ;
20
+ outputSchemas ?: string ;
16
21
httpClient ?: HttpClient ;
17
22
useOptions ?: boolean ;
18
23
useUnionTypes ?: boolean ;
@@ -30,6 +35,10 @@ export type Options = {
30
35
* service layer, etc.
31
36
* @param input The relative ___location of the OpenAPI spec
32
37
* @param output The relative ___location of the output directory
38
+ * @param outputCore The relative ___location of the core output directory
39
+ * @param outputModels The relative ___location of the models output directory
40
+ * @param outputSchemas The relative ___location of the schemas output directory
41
+ * @param outputServices The relative ___location of the services output directory
33
42
* @param httpClient The selected httpClient (fetch or XHR)
34
43
* @param useOptions Use options or arguments functions
35
44
* @param useUnionTypes Use union types instead of enums
@@ -43,6 +52,10 @@ export type Options = {
43
52
export async function generate ( {
44
53
input,
45
54
output,
55
+ outputCore = resolve ( output , 'core' ) ,
56
+ outputModels = resolve ( output , 'models' ) ,
57
+ outputServices = resolve ( output , 'services' ) ,
58
+ outputSchemas = resolve ( output , 'schemas' ) ,
46
59
httpClient = HttpClient . FETCH ,
47
60
useOptions = false ,
48
61
useUnionTypes = false ,
@@ -66,15 +79,47 @@ export async function generate({
66
79
const client = parseV2 ( openApi ) ;
67
80
const clientFinal = postProcessClient ( client ) ;
68
81
if ( ! write ) break ;
69
- await writeClient ( clientFinal , templates , output , httpClient , useOptions , useUnionTypes , exportCore , exportServices , exportModels , exportSchemas , request ) ;
82
+ await writeClient (
83
+ clientFinal ,
84
+ templates ,
85
+ output ,
86
+ outputCore ,
87
+ outputModels ,
88
+ outputSchemas ,
89
+ outputServices ,
90
+ httpClient ,
91
+ useOptions ,
92
+ useUnionTypes ,
93
+ exportCore ,
94
+ exportServices ,
95
+ exportModels ,
96
+ exportSchemas ,
97
+ request
98
+ ) ;
70
99
break ;
71
100
}
72
101
73
102
case OpenApiVersion . V3 : {
74
103
const client = parseV3 ( openApi ) ;
75
104
const clientFinal = postProcessClient ( client ) ;
76
105
if ( ! write ) break ;
77
- await writeClient ( clientFinal , templates , output , httpClient , useOptions , useUnionTypes , exportCore , exportServices , exportModels , exportSchemas , request ) ;
106
+ await writeClient (
107
+ clientFinal ,
108
+ templates ,
109
+ output ,
110
+ outputCore ,
111
+ outputModels ,
112
+ outputSchemas ,
113
+ outputServices ,
114
+ httpClient ,
115
+ useOptions ,
116
+ useUnionTypes ,
117
+ exportCore ,
118
+ exportServices ,
119
+ exportModels ,
120
+ exportSchemas ,
121
+ request
122
+ ) ;
78
123
break ;
79
124
}
80
125
}
0 commit comments