UNPKG

beesbuild

Version:

构建工具链

150 lines (149 loc) 6.52 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var stdin_exports = {}; __export(stdin_exports, { _rimraf: () => _rimraf, rimraf: () => rimraf }); module.exports = __toCommonJS(stdin_exports); var import_path = __toESM(require("path")); var import_chalk_unified = __toESM(require("chalk-unified")); var import_utils = require("@beesbuild/utils"); var import_fast_glob = __toESM(require("fast-glob")); var import_lodash_unified = require("lodash-unified"); var import_getBuildContext = require("./utils/getBuildContext.cjs"); async function _rimraf(ctx, rimrafOptions) { var _a; const options = ctx.options; const rootDir = ctx.options.rootDir; let rimraf2 = (_a = ctx.options.rimraf) != null ? _a : {}; if (!rimrafOptions) { rimraf2 = (0, import_lodash_unified.mergeWith)({}, rimraf2, rimrafOptions != null ? rimrafOptions : {}, (value, srcValue, key) => { if (key === "dirs") { return (0, import_lodash_unified.uniq)((0, import_lodash_unified.flattenDeep)([srcValue, value]).filter(Boolean)); } }); } if (!(rimraf2 == null ? void 0 : rimraf2.dirs) || rimraf2.dirs.length === 0 || !rimraf2) return; const excludeFiles = []; const filter = typeof options.filter === "string" ? options.filter.replace(/^((\.?)+(\/)+)+/, "") : ""; const includeFiles = rimraf2.dirs.reduce((dirs, dir) => { if (dir.includes(".")) return dirs; dir = dir.replace(/(\/){1,}$/g, ""); if (/((\.){2,}|(\/){2,})/g.test(dir) || !dir) return dirs; const exclude = `!**/node_modules/**/${dir}`; excludeFiles.push(exclude); if ((0, import_lodash_unified.isString)(filter)) { dir = import_path.default.relative(options.rootDir, import_path.default.join(options.rootDir, ".", `${filter}/${dir}`)); } return dirs.concat([dir]); }, []); if (options.changedFilesIgnorePattern) excludeFiles.push(options.changedFilesIgnorePattern); const source = includeFiles.concat(excludeFiles).filter(dir => !!dir); if (options.verbose) { import_utils.consola.info(import_chalk_unified.default.blue(`\u76EE\u5F55\u7B5B\u9009\u6761\u4EF6\uFF1A${options.rootDir}`)); source.forEach(v => import_utils.consola.info(`> ${import_chalk_unified.default.cyan(v)}`)); } const directories = []; const globOptions = { cwd: options.rootDir, deep: 5, absolute: true, ignore: ["**/.git/**", "**/.svn/**", "**/.hg/**"] }; if (rimraf2.onlyDirectories) { directories.push(...import_fast_glob.default.sync(source, { ...globOptions, onlyDirectories: true })); } if (directories.length > 0) { await Promise.allSettled(directories.map(dir => (0, import_utils.runSync)(`rimraf ${dir}`, { cwd: process.cwd() }))); if (options.verbose) { import_utils.consola.info(import_chalk_unified.default.blue(`\u9700\u8981\u5220\u9664\u7684\u76EE\u5F55\u6570\u91CF\uFF1A${directories.length}`)); directories.forEach(dir => import_utils.consola.info(import_chalk_unified.default.cyan("> \u5220\u9664\u76EE\u5F55\uFF1A"), import_path.default.relative(options.rootDir, dir))); } } else { import_utils.consola.warn(import_chalk_unified.default.cyan("\u6CA1\u6709\u9700\u8981\u5220\u9664\u7684\u76EE\u5F55")); } if (!rimraf2.onlyFiles) return; const files = []; const fileGlobOptions = { ...globOptions, onlyFiles: true, ignore: ["**/node_modules/**"] }; for (const dir of rimraf2.dirs) { const [a, ...dirs] = dir.split("/"); if (!dir.includes(".") || !/^\w+/.test(a)) continue; const suffix = dirs.pop(); const source2 = suffix ? dirs.concat([suffix]) : dirs; const r = filter ? `${filter}/${a}` : a; const dirss = import_fast_glob.default.sync(r, { ...globOptions, ignore: ["**/node_modules/**"], deep: 5, onlyDirectories: true }); if (dirss.length === 0) continue; const source22 = dirss.map(dir2 => `${import_path.default.relative(rootDir, dir2)}/${source2.join("/")}`); if (options.verbose) { import_utils.consola.info(import_chalk_unified.default.blue("\u6587\u4EF6\u7B5B\u9009\u6761\u4EF6\uFF1A")); source22.forEach(v => import_utils.consola.info(`> ${import_chalk_unified.default.cyan(v)}`)); } files.push(...import_fast_glob.default.sync(source22, fileGlobOptions)); } if (files.length === 0) { return import_utils.consola.warn(import_chalk_unified.default.cyan("\u6CA1\u6709\u9700\u8981\u5220\u9664\u7684\u6587\u4EF6")); } if (options.verbose) { await Promise.allSettled(files.map(dir => (0, import_utils.runSync)(`rimraf ${dir}`, { cwd: process.cwd() }))); import_utils.consola.info(import_chalk_unified.default.blue(`\u9700\u8981\u5220\u9664\u7684\u6587\u4EF6\u6570\u91CF\uFF1A${files.length}`)); files.forEach(dir => import_utils.consola.info(import_chalk_unified.default.cyan("> \u5220\u9664\u6587\u4EF6\uFF1A"), import_path.default.relative(rootDir, dir))); } } async function rimraf(options) { const ctx = await (0, import_getBuildContext.getBuildContext)(options); await _rimraf(ctx, options); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { _rimraf, rimraf });