rs-runner
Version:
RS is a CLI tool for quickly detecting package.json scripts, and running them.
111 lines (110 loc) • 5.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.runRunnerCommand = exports.runDirectoryScript = exports.runGlobalScript = exports.runPackageScript = void 0;
var child_process_1 = require("child_process");
var output_1 = require("./output");
var pm_1 = require("./pm");
var scripts_1 = require("./scripts");
var config_1 = require("./config");
var runPackageScript = function (script) {
var runner = (0, pm_1.detectRunner)();
if (!runner) {
output_1.output.error('No package manager detected. Run "npm init" or create a lock file first.');
return;
}
output_1.output.verbose("Package manager: ".concat(runner));
output_1.output.verbose("Script source: package.json");
var command = "".concat(runner, " run ").concat(script);
output_1.output.verbose("Full command: ".concat(command));
(0, output_1.output)("Executing: ".concat(command), 'green');
var childProcess = (0, child_process_1.spawn)(command, { stdio: 'inherit', shell: true });
childProcess.on('error', function (error) {
output_1.output.error("Error executing script: ".concat(error.message));
});
childProcess.on('exit', function (code) {
if (code !== 0) {
output_1.output.error("Script exited with code ".concat(code));
}
});
};
exports.runPackageScript = runPackageScript;
var runGlobalScript = function (script) {
var globalScripts = (0, scripts_1.getGlobalScripts)();
if (!globalScripts[script]) {
var available = Object.keys(globalScripts);
if (available.length > 0) {
output_1.output.warn("Global script '".concat(script, "' not found. Available: ").concat(available.join(', ')));
}
else {
output_1.output.warn("Global script '".concat(script, "' not found. No global scripts defined."));
}
return;
}
var configPath = (0, config_1.getConfigPath)();
output_1.output.verbose("Config file: ".concat(configPath));
output_1.output.verbose("Script source: global scripts");
var command = globalScripts[script];
output_1.output.verbose("Full command: ".concat(command));
(0, output_1.output)("Executing global script: ".concat(command), 'green');
var childProcess = (0, child_process_1.spawn)(command, { stdio: 'inherit', shell: true });
childProcess.on('error', function (error) {
output_1.output.error("Error executing global script: ".concat(error.message));
});
childProcess.on('exit', function (code) {
if (code !== 0) {
output_1.output.error("Global script exited with code ".concat(code));
}
});
};
exports.runGlobalScript = runGlobalScript;
var runDirectoryScript = function (script) {
var directoryScripts = (0, scripts_1.getDirectoryScripts)();
if (!directoryScripts[script]) {
var available = Object.keys(directoryScripts);
if (available.length > 0) {
output_1.output.warn("Directory script '".concat(script, "' not found. Available: ").concat(available.join(', ')));
}
else {
output_1.output.warn("Directory script '".concat(script, "' not found for current directory."));
}
return;
}
var configPath = (0, config_1.getConfigPath)();
output_1.output.verbose("Config file: ".concat(configPath));
output_1.output.verbose("Script source: directory scripts (".concat(process.cwd(), ")"));
var command = directoryScripts[script];
output_1.output.verbose("Full command: ".concat(command));
(0, output_1.output)("Executing directory script: ".concat(command), 'green');
var childProcess = (0, child_process_1.spawn)(command, { stdio: 'inherit', shell: true });
childProcess.on('error', function (error) {
output_1.output.error("Error executing directory script: ".concat(error.message));
});
childProcess.on('exit', function (code) {
if (code !== 0) {
output_1.output.error("Directory script exited with code ".concat(code));
}
});
};
exports.runDirectoryScript = runDirectoryScript;
var runRunnerCommand = function (script) {
var runner = (0, pm_1.detectRunner)();
if (!runner) {
output_1.output.error('No package manager detected. Run "npm init" or create a lock file first.');
return;
}
output_1.output.verbose("Package manager: ".concat(runner));
output_1.output.verbose("Script source: runner fallback");
var command = "".concat(runner, " ").concat(script);
output_1.output.verbose("Full command: ".concat(command));
(0, output_1.output)("Executing command: ".concat(command), 'green');
var childProcess = (0, child_process_1.spawn)(command, { stdio: 'inherit', shell: true });
childProcess.on('error', function (error) {
output_1.output.error("Error executing ".concat(runner, " command: ").concat(error.message));
});
childProcess.on('exit', function (code) {
if (code !== 0) {
output_1.output.error("".concat(runner, " command exited with code ").concat(code));
}
});
};
exports.runRunnerCommand = runRunnerCommand;