UNPKG

dts-bundle-generator

Version:
68 lines (67 loc) 2.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fs = require("fs"); var ts = require("typescript"); var argparse_1 = require("argparse"); var bundle_generator_1 = require("./bundle-generator"); var logger_1 = require("./logger"); var check_diagnostics_errors_1 = require("./check-diagnostics-errors"); var get_compiler_options_1 = require("./get-compiler-options"); var parser = new argparse_1.ArgumentParser(); parser.addArgument(['-o', '--out-file'], { dest: 'outFile', help: 'File name of generated d.ts', required: true, }); parser.addArgument(['-v', '--verbose'], { action: 'storeTrue', defaultValue: false, help: 'Enable verbose logging', }); parser.addArgument(['--no-check'], { action: 'storeTrue', defaultValue: false, dest: 'noCheck', help: 'Skip validation of generated d.ts file', type: Boolean, }); parser.addArgument(['--output-source-file'], { action: 'storeTrue', defaultValue: false, dest: 'outputSourceFileName', help: 'Add comment with file path the definitions came from', type: Boolean, }); parser.addArgument(['--fail-on-class'], { action: 'storeTrue', defaultValue: false, dest: 'failOnClass', help: 'Fail if generated dts contains class declaration', type: Boolean, }); parser.addArgument(['file'], { nargs: 1 }); var args = parser.parseArgs(); if (args.verbose) { logger_1.enableVerbose(); } try { var fileName = args.file[0]; var generatedDts = bundle_generator_1.generateDtsBundle(fileName, { failOnClass: args.failOnClass, outputFilenames: args.outputSourceFileName, }); logger_1.normalLog("Writing generated file to " + args.outFile + "..."); fs.writeFileSync(args.outFile, generatedDts); if (args.noCheck) { logger_1.normalLog('Checking of the file is skipped due "no-check" flag'); process.exit(0); } logger_1.normalLog('Checking of the generated file...'); var program = ts.createProgram([args.outFile], get_compiler_options_1.getCompilerOptionsForFile(fileName)); check_diagnostics_errors_1.checkProgramDiagnosticsErrors(program); logger_1.normalLog('Done.'); } catch (ex) { console.error("Error: " + ex.message); process.exit(1); }