@@ -20,14 +20,18 @@ export const createImports = ({
20
20
. find ( ( sourceFile ) => sourceFile . getFilePath ( ) . includes ( "services.ts" ) ) ;
21
21
22
22
if ( ! modelsFile ) {
23
- throw new Error ( "No models file found" ) ;
23
+ console . warn ( `
24
+ ⚠️ WARNING: No models file found.
25
+ This may be an error if \`.components.schemas\` or \`.components.parameters\` is defined in your OpenAPI input.` ) ;
24
26
}
25
27
26
28
if ( ! serviceFile ) {
27
29
throw new Error ( "No service file found" ) ;
28
30
}
29
31
30
- const modalNames = Array . from ( modelsFile . getExportedDeclarations ( ) . keys ( ) ) ;
32
+ const modelNames = modelsFile
33
+ ? Array . from ( modelsFile . getExportedDeclarations ( ) . keys ( ) )
34
+ : [ ] ;
31
35
32
36
const serviceExports = Array . from (
33
37
serviceFile . getExportedDeclarations ( ) . keys ( )
@@ -41,7 +45,7 @@ export const createImports = ({
41
45
name . endsWith ( "Data" )
42
46
) ;
43
47
44
- return [
48
+ const imports = [
45
49
ts . factory . createImportDeclaration (
46
50
undefined ,
47
51
ts . factory . createImportClause (
@@ -115,24 +119,29 @@ export const createImports = ({
115
119
ts . factory . createStringLiteral ( join ( "../requests" ) ) ,
116
120
undefined
117
121
) ,
122
+ ] ;
123
+ if ( modelsFile ) {
118
124
// import all the models by name
119
- ts . factory . createImportDeclaration (
120
- undefined ,
121
- ts . factory . createImportClause (
122
- false ,
125
+ imports . push (
126
+ ts . factory . createImportDeclaration (
123
127
undefined ,
124
- ts . factory . createNamedImports ( [
125
- ...modalNames . map ( ( modelName ) =>
126
- ts . factory . createImportSpecifier (
127
- false ,
128
- undefined ,
129
- ts . factory . createIdentifier ( modelName )
130
- )
131
- ) ,
132
- ] )
133
- ) ,
134
- ts . factory . createStringLiteral ( join ( "../requests/models" ) ) ,
135
- undefined
136
- ) ,
137
- ] ;
128
+ ts . factory . createImportClause (
129
+ false ,
130
+ undefined ,
131
+ ts . factory . createNamedImports ( [
132
+ ...modelNames . map ( ( modelName ) =>
133
+ ts . factory . createImportSpecifier (
134
+ false ,
135
+ undefined ,
136
+ ts . factory . createIdentifier ( modelName )
137
+ )
138
+ ) ,
139
+ ] )
140
+ ) ,
141
+ ts . factory . createStringLiteral ( join ( "../requests/models" ) ) ,
142
+ undefined
143
+ )
144
+ ) ;
145
+ }
146
+ return imports ;
138
147
} ;
0 commit comments