npx-run
Version:
Easily run scripts using npx.
49 lines (34 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.formattedScript = exports.formattedScriptName = void 0;
var _chalk = _interopRequireDefault(require("chalk"));
var _iterables = require("./iterables");
var _parseArgs = require("./parse-args");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const formattedScriptOrPattern = scriptOrPattern => (0, _parseArgs.isPattern)(scriptOrPattern) ? _chalk.default`{blue ${scriptOrPattern}}` : _chalk.default`{green ${scriptOrPattern}}`;
function* formattedRunGroups(args, scripts) {
const [runArgs, scriptsAndArgs] = (0, _iterables.headTail)((0, _parseArgs.splitByScripts)(args, scripts));
if (runArgs.length) {
yield _chalk.default`{dim ${runArgs.join(' ')}}`;
}
for (const [scriptOrPattern, ...scriptArgs] of scriptsAndArgs) {
const name = formattedScriptOrPattern(scriptOrPattern);
if (scriptArgs.length) {
yield `${name} ${scriptArgs.join(' ')}`;
} else {
yield name;
}
}
}
const formattedScriptName = scriptName => scriptName === 'default' ? _chalk.default`{bold.green ${scriptName}}` : _chalk.default`{green ${scriptName}}`;
exports.formattedScriptName = formattedScriptName;
const formattedScript = ([cmd, ...args], scripts) => {
if (cmd === 'run') {
const groups = [...formattedRunGroups(args, scripts)].join(' ');
return _chalk.default`{bold run} ${groups}`;
}
return _chalk.default`${cmd} {dim ${args.join(' ')}}`;
};
exports.formattedScript = formattedScript;