@@ -4,17 +4,18 @@ const debug = require('debug')
44const execa = require ( 'execa' )
55const resolve = require ( 'resolve' )
66const inquirer = require ( 'inquirer' )
7- const Generator = require ( './Generator' )
7+ const Generator = require ( '../Generator' )
8+ const SwaggerSetup = require ( './SwaggerSetup' )
89const cloneDeep = require ( 'lodash.clonedeep' )
9- const sortObject = require ( './util/sortObject' )
10- const getVersions = require ( './util/getVersions' )
11- const { installDeps } = require ( './util/installDeps' )
12- const clearConsole = require ( './util/clearConsole' )
13- const PromptModuleAPI = require ( './PromptModuleAPI' )
14- const writeFileTree = require ( './util/writeFileTree' )
15- const formatFeatures = require ( './util/formatFeatures' )
16- const fetchRemotePreset = require ( './util/fetchRemotePreset' )
17- const request = require ( './util/request.js' )
10+ const sortObject = require ( '.. /util/sortObject' )
11+ const getVersions = require ( '.. /util/getVersions' )
12+ const { installDeps } = require ( '.. /util/installDeps' )
13+ const clearConsole = require ( '.. /util/clearConsole' )
14+ const PromptModuleAPI = require ( '.. /PromptModuleAPI' )
15+ const writeFileTree = require ( '.. /util/writeFileTree' )
16+ const formatFeatures = require ( '.. /util/formatFeatures' )
17+ const fetchRemotePreset = require ( '.. /util/fetchRemotePreset' )
18+ const request = require ( '.. /util/request.js' )
1819
1920const {
2021 log,
@@ -31,7 +32,8 @@ module.exports = class Scaffold {
3132 constructor ( name , context , promptModules ) {
3233 this . name = name
3334 this . context = process . env . SIMPLI_CLI_CONTEXT = context
34- this . swaggerSetup = { }
35+ this . swaggerJSON = { }
36+ this . swaggerSetup = new SwaggerSetup ( )
3537 const { presetPrompt, featurePrompt } = this . resolveIntroPrompts ( )
3638 this . presetPrompt = presetPrompt
3739 this . featurePrompt = featurePrompt
@@ -55,7 +57,18 @@ module.exports = class Scaffold {
5557
5658 try {
5759 const resp = await request . get ( url )
58- this . swaggerSetup = resp . body
60+ this . swaggerJSON = resp . body
61+
62+ const { swagger, info, paths, definitions } = this . swaggerJSON
63+
64+ if ( ! swagger ) {
65+ throw new Error ( 'This file is not a valid Swagger' )
66+ }
67+
68+ // Remove last directory of the URL
69+ this . swaggerSetup . apiUrl = url . replace ( / \/ ( [ ^ \/ ] + ) \/ ? $ / , '/' )
70+ this . swaggerSetup . title = info && info . title
71+ this . swaggerSetup . setResources ( definitions , paths )
5972 } catch ( e ) {
6073 error ( e . message )
6174 process . exit ( 1 )
0 commit comments