esbuild-plugin-clean
Version:
ESBuild plugin for cleaning up assets before building.
98 lines (94 loc) • 3.54 kB
JavaScript
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 __name = (target, value) => __defProp(target, "name", { value, configurable: true });
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(
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
clean: () => clean,
default: () => src_default
});
module.exports = __toCommonJS(src_exports);
// src/lib/esbuild-plugin-clean.ts
var import_chalk = __toESM(require("chalk"));
var import_del = __toESM(require("del"));
var clean = /* @__PURE__ */ __name((options = {}) => {
const { patterns = [], cleanOnStartPatterns = [], cleanOnEndPatterns = [], dryRun = false, options: delOptions = {}, sync = true, cleanOn = "start", verbose: _verbose = false } = options;
const verbose = dryRun || _verbose;
const logCleanFiles = /* @__PURE__ */ __name((type, cleanFiles) => {
if (!verbose) {
return;
}
if (dryRun) {
console.log(import_chalk.default.blue("i"), `Clean plugin invoked in dryRun mode`);
}
if (cleanFiles.length) {
console.log(import_chalk.default.blue("i"), `${type} File Cleaned:
${cleanFiles.join("\n")}`);
}
}, "logCleanFiles");
const handler = sync ? (type, patterns2) => {
const cleanFiles = import_del.default.sync(patterns2, {
dryRun,
...delOptions
});
logCleanFiles(type, cleanFiles);
} : (type, patterns2) => {
(0, import_del.default)(patterns2, {
dryRun,
...delOptions
}).then((cleanFiles) => {
logCleanFiles(type, cleanFiles);
});
};
return {
name: "plugin:clean",
setup({ onStart: registerOnStartCallback, onEnd: registerOnEndCallback }) {
if (!patterns.length && !cleanOnStartPatterns.length && !cleanOnEndPatterns.length) {
return;
}
if (cleanOn === "start" || cleanOn === "both") {
registerOnStartCallback(() => {
patterns.length && handler("NormalPatterns", patterns);
});
}
if (cleanOn === "end" || cleanOn === "both") {
registerOnEndCallback(() => {
patterns.length && handler("NormalPatterns", patterns);
});
}
registerOnStartCallback(() => {
cleanOnStartPatterns.length && handler("CleanOnStartPatterns", cleanOnStartPatterns);
});
registerOnEndCallback(() => {
cleanOnEndPatterns.length && handler("CleanOnEndPatterns", cleanOnEndPatterns);
});
}
};
}, "clean");
// src/index.ts
var src_default = clean;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
clean
});