File tree Expand file tree Collapse file tree 7 files changed +21
-12
lines changed Expand file tree Collapse file tree 7 files changed +21
-12
lines changed Original file line number Diff line number Diff line change @@ -44,7 +44,7 @@ $ openapi --help
44
44
--useUnionTypes Use union types instead of enums
45
45
--exportCore <value> Write core files to disk (default: true)
46
46
--exportServices <value> Write services to disk [true, false, regexp] (default: true)
47
- --exportModels <value> Write models to disk (default: true)
47
+ --exportModels <value> Write models to disk [true, false, regexp] (default: true)
48
48
--exportSchemas <value> Write schemas to disk (default: false)
49
49
--indent <value> Indentation options [4, 2, tab] (default: "4")
50
50
--postfixServices Service name postfix (default: "Service")
Original file line number Diff line number Diff line change @@ -29,13 +29,15 @@ const params = program
29
29
30
30
const OpenAPI = require ( path . resolve ( __dirname , '../dist/index.js' ) ) ;
31
31
32
- if ( OpenAPI ) {
33
- let exportServices ;
32
+ const parseBooleanOrString = value => {
34
33
try {
35
- exportServices = JSON . parse ( params . exportServices ) === true ;
34
+ return JSON . parse ( value ) === true ;
36
35
} catch ( error ) {
37
- exportServices = params . exportServices ;
36
+ return value ;
38
37
}
38
+ } ;
39
+
40
+ if ( OpenAPI ) {
39
41
OpenAPI . generate ( {
40
42
input : params . input ,
41
43
output : params . output ,
@@ -44,8 +46,8 @@ if (OpenAPI) {
44
46
useOptions : params . useOptions ,
45
47
useUnionTypes : params . useUnionTypes ,
46
48
exportCore : JSON . parse ( params . exportCore ) === true ,
47
- exportServices,
48
- exportModels : JSON . parse ( params . exportModels ) === true ,
49
+ exportServices : parseBooleanOrString ( params . exportServices ) ,
50
+ exportModels : parseBooleanOrString ( params . exportModels ) ,
49
51
exportSchemas : JSON . parse ( params . exportSchemas ) === true ,
50
52
indent : params . indent ,
51
53
postfixServices : params . postfixServices ,
Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ describe('bin', () => {
43
43
expect ( result . stderr . toString ( ) ) . toBe ( '' ) ;
44
44
} ) ;
45
45
46
- it ( 'it should support regexp in exportSchemas ' , async ( ) => {
46
+ it ( 'it should support regexp params ' , async ( ) => {
47
47
const result = crossSpawn . sync ( 'node' , [
48
48
'./bin/index.js' ,
49
49
'--input' ,
@@ -52,6 +52,8 @@ describe('bin', () => {
52
52
'./test/generated/bin' ,
53
53
'--exportServices' ,
54
54
'^(Simple|Types)' ,
55
+ '--exportModels' ,
56
+ '^(Simple|Types)' ,
55
57
] ) ;
56
58
expect ( result . stdout . toString ( ) ) . toBe ( '' ) ;
57
59
expect ( result . stderr . toString ( ) ) . toBe ( '' ) ;
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ export type Options = {
21
21
useUnionTypes ?: boolean ;
22
22
exportCore ?: boolean ;
23
23
exportServices ?: boolean | string ;
24
- exportModels ?: boolean ;
24
+ exportModels ?: boolean | string ;
25
25
exportSchemas ?: boolean ;
26
26
indent ?: Indent ;
27
27
postfixServices ?: string ;
Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ export const writeClient = async (
42
42
useUnionTypes : boolean ,
43
43
exportCore : boolean ,
44
44
exportServices : boolean | string ,
45
- exportModels : boolean ,
45
+ exportModels : boolean | string ,
46
46
exportSchemas : boolean ,
47
47
indent : Indent ,
48
48
postfixServices : string ,
@@ -65,6 +65,11 @@ export const writeClient = async (
65
65
client . services = client . services . filter ( service => regexp . test ( service . name ) ) ;
66
66
}
67
67
68
+ if ( typeof exportModels === 'string' ) {
69
+ const regexp = new RegExp ( exportModels ) ;
70
+ client . models = client . models . filter ( model => regexp . test ( model . name ) ) ;
71
+ }
72
+
68
73
if ( exportCore ) {
69
74
await rmdir ( outputPathCore ) ;
70
75
await mkdir ( outputPathCore ) ;
Original file line number Diff line number Diff line change @@ -30,7 +30,7 @@ export const writeClientIndex = async (
30
30
useUnionTypes : boolean ,
31
31
exportCore : boolean ,
32
32
exportServices : boolean | string ,
33
- exportModels : boolean ,
33
+ exportModels : boolean | string ,
34
34
exportSchemas : boolean ,
35
35
postfixServices : string ,
36
36
postfixModels : string ,
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ export type Options = {
21
21
useUnionTypes ?: boolean ;
22
22
exportCore ?: boolean ;
23
23
exportServices ?: boolean | string ;
24
- exportModels ?: boolean ;
24
+ exportModels ?: boolean | string ;
25
25
exportSchemas ?: boolean ;
26
26
indent ?: Indent | '4' | '2' | 'tab' ;
27
27
postfixServices ?: string ;
You can’t perform that action at this time.
0 commit comments