paranormal
Version:
Phenomenal Code Examples
107 lines (76 loc) • 2.97 kB
JavaScript
;
exports.__esModule = true;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _meow2 = require('meow');
var _meow3 = _interopRequireDefault(_meow2);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _Runner = require('./Runner');
var _Runner2 = _interopRequireDefault(_Runner);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function cliToOptions(input, flags) {
var match = input;
var cwd = void 0;
if (typeof flags.cwd === 'undefined') {
cwd = process.cwd();
} else if (typeof flags.cwd === 'string') {
cwd = _path2.default.resolve(process.cwd(), flags.cwd);
} else {
throw new Error(`The flag \`--cwd=<path>\` requires a path`);
}
var watch = void 0;
if (typeof flags.watch === 'undefined') {
watch = false;
} else if (typeof flags.watch === 'boolean') {
watch = flags.watch;
} else {
throw new Error(`The flag \`--watch/-w\` does not accept an argument`);
}
return { match, cwd, watch };
}
exports.default = function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(argv) {
var start, _meow, pkg, input, flags, _cliToOptions, cwd, match, watch, runner, timing, rounded;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
start = Date.now();
_meow = (0, _meow3.default)({
argv,
help: `
Usage
$ paranormal <...globs> <...flags>
Flags
--watch, -w Watch files and update on changes
--cwd <dir> Set the current working directory
`
}), pkg = _meow.pkg, input = _meow.input, flags = _meow.flags;
console.error(_chalk2.default.bold.cyan(`👻 Paranormal ${pkg.version} (node: ${process.versions.node})`));
_cliToOptions = cliToOptions(input, flags), cwd = _cliToOptions.cwd, match = _cliToOptions.match, watch = _cliToOptions.watch;
runner = new _Runner2.default({ cwd });
_context.next = 7;
return runner.run({ match, watch });
case 7:
if (!watch) {
timing = (Date.now() - start) / 1000;
rounded = Math.round(timing * 100) / 100;
console.error(_chalk2.default.dim(`💀 Done in ${rounded}s.`));
}
case 8:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function cli(_x) {
return _ref.apply(this, arguments);
}
return cli;
}();