dts-bundle-generator
Version:
DTS Bundle Generator
68 lines (67 loc) • 2.34 kB
JavaScript
"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);
}