sb-babel-cli
Version:
A smarter babel-cli
72 lines (56 loc) • 2.79 kB
JavaScript
;
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _ = require('../');
var _2 = _interopRequireDefault(_);
var _handleError = require('../handleError');
var _handleError2 = _interopRequireDefault(_handleError);
var _package = require('../../package.json');
var _package2 = _interopRequireDefault(_package);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function get(obj, key, defaultValue) {
if (typeof obj[key] === 'undefined') {
return defaultValue;
}
return obj[key];
}
_commander2.default.version(_package2.default.version).description(_package2.default.description).usage('[options] <source directory>').option('-w, --watch', 'Watch files for changes').option('--ignored <list>', 'Ignored files and directories that match the given globs', function (value) {
return value.split(',').map(function (item) {
return item.trim();
}).filter(Boolean);
}).option('--write-flow-sources', 'Write .flow files that are symlinked to source files. Helps with monorepos in some cases').option('--disable-cache', 'Force recompile all files ignoring cache').option('--keep-extra-files', 'Do NOT delete extra files in the output directory').option('-o, --output-directory <directory>', 'Output directory to write transpiled files to').option('-x, --execute <entryFile>', 'Relative path of file to execute (only supported in watcher mode)').option('--execute-delay <delay>', 'Delay in ms to in between restarts of executed file', function (value) {
return parseInt(value, 10);
}).parse(process.argv);
if (_commander2.default.args.length !== 1) {
_commander2.default.outputHelp();
process.exit(1);
}
if (typeof _commander2.default.outputDirectory === 'undefined') {
console.log('ERROR: You must specify output directory');
_commander2.default.outputHelp();
process.exit(1);
}
var config = {
watch: get(_commander2.default, 'watch', false),
ignored: get(_commander2.default, 'ignored', []),
disableCache: get(_commander2.default, 'disableCache', false),
writeFlowSources: get(_commander2.default, 'writeFlowSources', false),
keepExtraFiles: get(_commander2.default, 'keepExtraFiles', false),
sourceDirectory: _commander2.default.args[0],
outputDirectory: _commander2.default.outputDirectory,
execute: get(_commander2.default, 'execute', ''),
executeDelay: get(_commander2.default, 'executeDelay', 250)
};
if (!config.watch && config.execute) {
console.error('ERROR: --execute is not supported without --watch');
process.exit(1);
}
(0, _2.default)(config).then(function () {
if (!config.watch) {
process.exit();
}
}).catch(function (error) {
(0, _handleError2.default)(error);
process.exit(1);
});