UNPKG

@verizonconnect/ngx-form-generator

Version:

Generates an Angular ReactiveForm from a Swagger or OpenAPI definition

48 lines (47 loc) 1.75 kB
#! /usr/bin/env node "use strict"; /** * @license * Licensed under the MIT License, (“the License”); you may not use this * file except in compliance with the License. * * Copyright (c) 2020 Verizon */ Object.defineProperty(exports, "__esModule", { value: true }); const generator_lib_1 = require("./generator-lib"); const path_1 = require("path"); const yargs = require('yargs'); async function main() { const argv = yargs .option('input-spec', { alias: ['i', 'swaggerUrl'], description: 'Location of the OpenAPI spec as a URL or file path', type: 'string', require: true }) .option('output', { alias: ['o', 'outDir'], description: 'Where to write the generated files', type: 'string' }) .option('file-name', { alias: ['f', 'outFile'], description: 'Generated file name', type: 'string' }) .help() .wrap(null) .usage('Generates Angular ReactiveForms from an OpenAPI v2 or v3 spec.\n\n Usage: $0 -i <spec> -o <path>') .example('ngx-form-generator -i https://petstore.swagger.io/v2/swagger.json -o petstore-forms') .example('ngx-form-generator -i https://petstore.swagger.io/v2/swagger.yaml -o petstore-forms') .example('npx ngx-form-generator -i swagger.json -o project/form/src/lib') .alias('help', 'h').argv; const spec = await generator_lib_1.loadSpec(argv['input-spec']); const file = generator_lib_1.makeForm(spec); let fileName = argv['file-name'] || generator_lib_1.makeFileName(spec) || 'forms.ts'; if (argv.output) { fileName = path_1.join(argv.output, fileName); } await generator_lib_1.saveFile(file, fileName); } main();