clear-npx-cache
Version:
Clears your NPX cache.
41 lines (40 loc) • 1.96 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var child_process_1 = require("child_process");
var fs_1 = require("fs");
var path_1 = __importDefault(require("path"));
var cli_progress_1 = __importDefault(require("cli-progress"));
function clearCache() {
var npmCacheDirectory = (0, child_process_1.execSync)('npm config get cache').toString().trimEnd();
var npxCacheDirectory = path_1.default.join(npmCacheDirectory, '_npx');
var bar1 = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
console.log(' Starting cleaning ... \n');
if ((0, fs_1.existsSync)(npxCacheDirectory)) {
var subdirectoryNames = (0, fs_1.readdirSync)(npxCacheDirectory);
var subdirectories = subdirectoryNames.map(function (subdirectoryName) {
return path_1.default.join(npxCacheDirectory, subdirectoryName);
});
bar1.start(subdirectories.length, 0);
for (var i = 0; i < subdirectories.length; i += 1) {
var subdirectory = subdirectories[i];
var packagePath = path_1.default.join(subdirectory, 'package.json');
bar1.update(i + 1);
if ((0, fs_1.existsSync)(packagePath)) {
var package_json = JSON.parse((0, fs_1.readFileSync)(packagePath).toString());
if (package_json.name === 'clear-npx-cache')
continue;
}
(0, fs_1.rmSync)(subdirectory, { recursive: true });
}
bar1.stop();
console.log('\n Cache cleared successfully! Thanks for using our lib.');
}
else {
(0, fs_1.mkdirSync)(npxCacheDirectory);
console.log('\n Everything up to date, cache already clean!');
}
}
exports.default = clearCache;