UNPKG

lerna

Version:

Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository

59 lines (56 loc) 1.61 kB
import { Command, filterProjects, getPackage, promptConfirmation, pulseTillDone, rimrafDir } from "./chunk-WC2B4V4E.js"; // libs/commands/clean/src/index.ts import pMap from "p-map"; import path from "path"; function factory(argv) { return new CleanCommand(argv); } var CleanCommand = class extends Command { directoriesToDelete = []; get requiresGit() { return false; } initialize() { const filteredProjects = filterProjects(this.projectGraph, this.execOpts, this.options); this.directoriesToDelete = filteredProjects.map((p) => getPackage(p).nodeModulesLocation); if (this.options.yes) { return true; } this.logger.info("", "Removing the following directories:"); this.logger.info( "clean", this.directoriesToDelete.map((dir) => path.relative(this.project.rootPath, dir)).join("\n") ); return promptConfirmation("Proceed?"); } execute() { this.enableProgressBar(); const tracker = this.logger["newItem"]("clean"); const mapper = (dirPath) => { tracker.info("clean", "removing", dirPath); return pulseTillDone(rimrafDir(dirPath)).then(() => { tracker.completeWork(1); }); }; tracker.addWork(this.directoriesToDelete.length); return pMap(this.directoriesToDelete, mapper, { concurrency: this.concurrency }).then(() => { tracker.finish(); this.logger.success("clean", "finished"); }); } }; var commonJsExport = Object.assign(factory, { CleanCommand }); var src_default = commonJsExport; export { factory, CleanCommand, commonJsExport, src_default };