44const fetch = require ( 'node-fetch' ) ;
55const util = require ( 'util' ) ;
66
7- function main ( obj , config , configName , callback ) {
7+ function getServer ( prefix ) {
8+ if ( prefix === 'og' ) {
9+ return 'https://api.openapi-generator.tech/api/gen/' ;
10+ }
11+ else if ( prefix === 'sc' ) {
12+ return 'https://generator.swagger.io/api/gen/' ;
13+ }
14+ console . warn ( 'Unknown API provider prefix' , prefix ) ;
15+ return false ;
16+ }
17+
18+ async function main ( obj , config , configName , callback ) {
19+ const components = configName . split ( ':' ) ;
20+ const prefix = components [ 0 ] ;
21+ const type = components [ 1 ] ;
22+ const template = components [ 2 ] ;
23+ const server = getServer ( prefix ) ;
24+ const body = { options : { } , spec : obj } ;
25+ const response = await fetch ( server + type + 's/' + template , {
26+ method : 'post' ,
27+ body : JSON . stringify ( body ) ,
28+ headers : { 'Content-Type' : 'application/json' }
29+ } )
30+ . then ( res => res . json ( ) )
31+ . then ( json => json ) ;
32+ if ( response . link ) {
33+ const zipfile = await fetch ( response . link )
34+ . then ( res => res . buffer ( ) )
35+ . then ( buffer => buffer ) ;
36+ callback ( null , zipfile ) ;
37+ }
38+ else {
39+ console . warn ( util . inspect ( response ) ) ;
40+ }
841}
942
1043function format ( templates , prefix , type , filter ) {
@@ -29,20 +62,13 @@ async function slurp(server, prefix, type, plural, filter) {
2962}
3063
3164async function list ( prefix , filter ) {
32- let server = '' ;
33- if ( prefix === 'og' ) {
34- server = 'https://api.openapi-generator.tech/api/gen/' ;
35- }
36- else if ( prefix === 'sc' ) {
37- server = 'https://generator.swagger.io/api/gen/' ;
38- }
39- else {
40- console . warn ( 'Unknown API provider prefix' , prefix ) ;
41- return 1 ;
65+ const server = getServer ( prefix ) ;
66+ if ( server ) {
67+ await slurp ( server , prefix , 'client' , 'clients' , filter ) ;
68+ await slurp ( server , prefix , 'server' , 'servers' , filter ) ;
69+ return 0 ;
4270 }
43- await slurp ( server , prefix , 'client' , 'clients' , filter ) ;
44- await slurp ( server , prefix , 'server' , 'servers' , filter ) ;
45- return 0 ;
71+ return 1 ;
4672}
4773
4874module . exports = {
0 commit comments