paranormal
Version:
Phenomenal Code Examples
75 lines (53 loc) • 1.84 kB
JavaScript
;
exports.__esModule = true;
var _meow = require('meow');
var _meow2 = _interopRequireDefault(_meow);
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) {
let match = input;
let cwd;
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`);
}
let watch;
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 = async function cli(argv) {
let start = Date.now();
let { pkg, input, flags } = (0, _meow2.default)({
argv,
help: `
Usage
$ paranormal <...globs> <...flags>
Flags
--watch, -w Watch files and update on changes
--cwd <dir> Set the current working directory
`
});
console.error(_chalk2.default.bold.cyan(`👻 Paranormal ${pkg.version} (node: ${process.versions.node})`));
let { cwd, match, watch } = cliToOptions(input, flags);
let runner = new _Runner2.default({ cwd });
await runner.run({ match, watch });
if (!watch) {
let timing = (Date.now() - start) / 1000;
let rounded = Math.round(timing * 100) / 100;
console.error(_chalk2.default.dim(`💀 Done in ${rounded}s.`));
}
};