UNPKG

rs-runner

Version:

RS is a CLI tool for quickly detecting package.json scripts, and running them.

117 lines (116 loc) 4.82 kB
"use strict"; 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;