|
| 1 | +const { createPaths } = require("./pathCreator"); |
| 2 | + |
| 3 | +const { configFileLoader } = require("./loaders/configFileLoader"); |
| 4 | +const { apiInfoLoader } = require("./loaders/apiInfoLoader"); |
| 5 | +const { modelsLoader } = require("./loaders/modelsLoader"); |
| 6 | +const { requestBodiesLoader } = require("./loaders/requestBodiesLoader"); |
| 7 | +const { servicesLoader } = require("./loaders/servicesLoader"); |
| 8 | + |
| 9 | +const { modelFilesGenerator } = require("./generators/modelFilesGenerator"); |
| 10 | +const { requestBodiesGenerator } = require("./generators/requestBodiesGenerator"); |
| 11 | +const { serviceFilesGenerator } = require("./generators/serviceFilesGenerator"); |
| 12 | + |
| 13 | +const args = process.argv.slice(2); |
| 14 | +const errorMessage = "Too few arguments. Specify openapi config file with -c <path>, path of service base class location with -cb <path>, path of service generation destination with -s <path>, path of models generation destination with -m <path> and path of server models location with -sm <path>."; |
| 15 | +if (!args || !args[1] || !args[3] || !args[5] || !args[7] || !args[9]) { |
| 16 | + console.log(errorMessage); |
| 17 | + return; |
| 18 | +} |
| 19 | + |
| 20 | +async function generate() { |
| 21 | + console.log("InStage client api generator"); |
| 22 | + const paths = createPaths(args[1], args[3], args[5], args[7], args[9]); |
| 23 | + |
| 24 | + console.log("Loading config file..."); |
| 25 | + const config = await configFileLoader(paths.configFile, paths.serverModels); |
| 26 | + console.log("Config file loaded."); |
| 27 | + |
| 28 | + console.log("Loading api info..."); |
| 29 | + const apiInfo = apiInfoLoader(config); |
| 30 | + console.log("Done."); |
| 31 | + |
| 32 | + console.log("Loading models..."); |
| 33 | + const models = modelsLoader(config); |
| 34 | + console.log(`Loaded ${models.length} models.`); |
| 35 | + |
| 36 | + console.log("Generating model files..."); |
| 37 | + modelFilesGenerator(paths.models, apiInfo, models); |
| 38 | + console.log(`Generated ${models.length} model files.`); |
| 39 | + |
| 40 | + console.log("Loading request bodies..."); |
| 41 | + const requestBodies = requestBodiesLoader(config); |
| 42 | + console.log(`Loaded ${requestBodies.length} request bodies.`); |
| 43 | + |
| 44 | + console.log("Generating request body files..."); |
| 45 | + requestBodiesGenerator(paths.models, apiInfo, requestBodies); |
| 46 | + console.log(`Generated ${requestBodies.length} request body files.`); |
| 47 | + |
| 48 | + const services = servicesLoader(config, models, requestBodies); |
| 49 | + serviceFilesGenerator(paths, apiInfo, services); |
| 50 | + |
| 51 | + console.log(`Generated ${services.length} services.`); |
| 52 | +} |
| 53 | + |
| 54 | +generate(); |
| 55 | + |
0 commit comments