cli.ts 914 B

123456789101112131415161718192021222324252627
  1. import { writeFileSync } from 'fs';
  2. import { Command } from 'commander';
  3. import { generateOperationIds } from './generate-operation-ids';
  4. const main = async() => {
  5. // parse command line arguments
  6. const program = new Command();
  7. program
  8. .name('generate-operation-ids')
  9. .description('Generate operationId for OpenAPI specification')
  10. .argument('<input-file>', 'OpenAPI specification file')
  11. .option('-o, --out <output-file>', 'Output file (defaults to input file)')
  12. .option('--overwrite-existing', 'Overwrite existing operationId values')
  13. .parse();
  14. const { out: outputFile, overwriteExisting } = program.opts();
  15. const [inputFile] = program.args;
  16. // eslint-disable-next-line no-console
  17. const jsonStrings = await generateOperationIds(inputFile, { overwriteExisting }).catch(console.error);
  18. if (jsonStrings != null) {
  19. writeFileSync(outputFile, jsonStrings);
  20. }
  21. };
  22. main();