rs-runner
Version:
RS is a CLI tool for quickly detecting package.json scripts, and running them.
117 lines (116 loc) • 4.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeDirectoryScript = exports.addNewDirectoryScript = exports.removeGlobalScript = exports.addNewGlobalScript = exports.getDirectoryScripts = exports.getGlobalScripts = void 0;
var output_1 = require("./output");
var config_1 = require("./config");
var getGlobalScripts = function () {
var config = (0, config_1.getConfig)();
if (config && config.globalScripts) {
return config.globalScripts;
}
return {};
};
exports.getGlobalScripts = getGlobalScripts;
var getDirectoryScripts = function () {
var config = (0, config_1.getConfig)();
var currentDir = process.cwd();
if (config && config.directoryScripts && config.directoryScripts[currentDir]) {
return config.directoryScripts[currentDir];
}
return {};
};
exports.getDirectoryScripts = getDirectoryScripts;
var addNewGlobalScript = function (key, value) {
var config = (0, config_1.getConfig)();
if (!config) {
config = {
globalScripts: {},
directoryScripts: {},
};
}
if (!config.globalScripts) {
config.globalScripts = {};
}
if (config.globalScripts.hasOwnProperty(key)) {
output_1.output.warn("Global script '".concat(key, "' already exists. Overwriting..."));
}
config.globalScripts[key] = value;
(0, config_1.writeConfig)(config);
var updatedConfig = (0, config_1.getConfig)();
if (updatedConfig && updatedConfig.globalScripts[key] === value) {
(0, output_1.output)("Global script '".concat(key, "' added successfully."), 'green');
(0, output_1.output)(JSON.stringify(updatedConfig.globalScripts, null, 2), 'blue');
}
else {
output_1.output.error('Error: Failed to add to config.');
}
};
exports.addNewGlobalScript = addNewGlobalScript;
var removeGlobalScript = function (key) {
var config = (0, config_1.getConfig)();
if (!config) {
output_1.output.warn('No global scripts configuration found.');
return;
}
if (config.globalScripts && config.globalScripts.hasOwnProperty(key)) {
delete config.globalScripts[key];
(0, config_1.writeConfig)(config);
(0, output_1.output)("Global script '".concat(key, "' removed successfully."), 'green');
}
else {
(0, output_1.output)("Global script '".concat(key, "' not found."), 'yellow');
}
};
exports.removeGlobalScript = removeGlobalScript;
var addNewDirectoryScript = function (key, value) {
var _a, _b;
var config = (0, config_1.getConfig)();
var currentDir = process.cwd();
if (!config) {
config = {
globalScripts: {},
directoryScripts: {},
};
}
if (!config.directoryScripts) {
config.directoryScripts = {};
}
if (!config.directoryScripts[currentDir]) {
config.directoryScripts[currentDir] = {};
}
if (config.directoryScripts[currentDir].hasOwnProperty(key)) {
output_1.output.warn("Directory script '".concat(key, "' already exists for ").concat(currentDir, ". Overwriting..."));
}
config.directoryScripts[currentDir][key] = value;
(0, config_1.writeConfig)(config);
var updatedConfig = (0, config_1.getConfig)();
if (updatedConfig && ((_b = (_a = updatedConfig.directoryScripts) === null || _a === void 0 ? void 0 : _a[currentDir]) === null || _b === void 0 ? void 0 : _b[key]) === value) {
(0, output_1.output)("Directory script '".concat(key, "' added successfully for ").concat(currentDir), 'green');
(0, output_1.output)(JSON.stringify(updatedConfig.directoryScripts[currentDir], null, 2), 'blue');
}
else {
output_1.output.error('Error: Failed to add directory script to config.');
}
};
exports.addNewDirectoryScript = addNewDirectoryScript;
var removeDirectoryScript = function (key) {
var config = (0, config_1.getConfig)();
var currentDir = process.cwd();
if (!config || !config.directoryScripts || !config.directoryScripts[currentDir]) {
output_1.output.warn('No directory scripts found for current directory.');
return;
}
if (config.directoryScripts[currentDir].hasOwnProperty(key)) {
delete config.directoryScripts[currentDir][key];
// Clean up empty directory entries
if (Object.keys(config.directoryScripts[currentDir]).length === 0) {
delete config.directoryScripts[currentDir];
}
(0, config_1.writeConfig)(config);
(0, output_1.output)("Directory script '".concat(key, "' removed successfully."), 'green');
}
else {
(0, output_1.output)("Directory script '".concat(key, "' not found in current directory."), 'yellow');
}
};
exports.removeDirectoryScript = removeDirectoryScript;