@@ -50,18 +50,18 @@ interface ActionDataType {
50
50
[ key :string ] :any ;
51
51
}
52
52
53
- export async function runOpenApi (
54
- actionData :ActionDataType ,
55
- dataSourceConfig :DataSourceDataType ,
53
+ async function getDefinitions (
56
54
spec :OpenAPI . Document | MultiOpenApiSpecItem [ ] ,
57
- defaultHeaders ?:Record < string , string > ,
58
55
openApiSpecDereferenced ?:OpenAPI . Document ,
59
- ) {
60
- const specList = Array . isArray ( spec ) ?spec :[ { spec, id :"" } ] ;
61
- let definitions ;
62
-
63
- if ( ! openApiSpecDereferenced ) {
64
- definitions = await Promise . all (
56
+ ) :Promise < { def :OpenAPI . Document ; id :string } [ ] > {
57
+ if ( openApiSpecDereferenced ) {
58
+ return [ {
59
+ def :openApiSpecDereferenced ,
60
+ id :"" ,
61
+ } ]
62
+ } else {
63
+ const specList = Array . isArray ( spec ) ?spec :[ { spec, id :"" } ] ;
64
+ return await Promise . all (
65
65
specList . map ( async ( { id, spec} ) => {
66
66
const deRefedSpec = await SwaggerParser . dereference ( spec ) ;
67
67
return {
@@ -70,20 +70,22 @@ export async function runOpenApi(
70
70
} ;
71
71
} )
72
72
) ;
73
- } else {
74
- definitions = [ {
75
- def :openApiSpecDereferenced ,
76
- id :"" ,
77
- } ]
78
73
}
74
+ }
75
+
76
+ export async function runOpenApi (
77
+ actionData :ActionDataType ,
78
+ dataSourceConfig :DataSourceDataType ,
79
+ spec :OpenAPI . Document | MultiOpenApiSpecItem [ ] ,
80
+ defaultHeaders ?:Record < string , string > ,
81
+ openApiSpecDereferenced ?:OpenAPI . Document ,
82
+ ) {
79
83
const { actionName, ...otherActionData } = actionData ;
80
84
const { serverURL} = dataSourceConfig ;
81
85
82
- let definition :OpenAPI . Document | undefined ;
83
- let operation ;
84
- let realOperationId ;
86
+ let operation , realOperationId , definition :OpenAPI . Document | undefined ;
85
87
86
- for ( const { id, def} of definitions ) {
88
+ for ( const { id, def} of await getDefinitions ( spec , openApiSpecDereferenced ) ) {
87
89
const ret = findOperation ( actionName , def , id ) ;
88
90
if ( ret ) {
89
91
definition = def ;