chai-latte
Version:
Build expressive & readable fluent interface libraries.
40 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const commander_1 = require("commander");
const chokidar_1 = tslib_1.__importDefault(require("chokidar"));
const fs_1 = tslib_1.__importDefault(require("fs"));
const path_1 = tslib_1.__importDefault(require("path"));
const compileUsingTsNode_1 = require("./codegen/actions/compileUsingTsNode");
const getPkgInfo = () => {
const pkgjsonPath = path_1.default.resolve(__dirname, '..', 'package.json');
const pkgInfoString = fs_1.default.readFileSync(pkgjsonPath, 'utf-8');
const pkgInfo = JSON.parse(pkgInfoString);
return pkgInfo;
};
const pkgInfo = getPkgInfo();
commander_1.program.name(pkgInfo.name)
.version(pkgInfo.version)
.option('-i --input <path>', 'Input file path that should be typed')
.option('-o --output <filename>', 'Desired generated file name')
.option('-w --watch', 'Watch for changes and re-generate typed file');
commander_1.program.parse();
const options = commander_1.program.opts();
const input = options.input || './index';
const output = options.output ? `${options.output}.ts` : 'generated.ts';
const runCompilation = () => {
console.log('Start compiling...');
(0, compileUsingTsNode_1.compileUsingTsNode)({
input,
output,
});
console.log('Done!');
};
runCompilation();
if (options.watch) {
const watchPath = path_1.default.resolve(process.cwd(), input + '.ts');
chokidar_1.default.watch(watchPath)
.on('change', runCompilation);
}
//# sourceMappingURL=cli.js.map