@angular-buildx/esbuild
Version:
A custom Angular CLI builder for extending Esbuild configuration in Angular projects.
29 lines (28 loc) • 1.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.pluginSnapshot = pluginSnapshot;
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const util_1 = __importDefault(require("util"));
function pluginSnapshot(options) {
return {
name: "plugin-snapshot",
setup(build) {
if (!options.enable)
return;
const snapshotDirectory = path_1.default.join(process.cwd(), ".esbuild");
const fileConfigMergedPath = path_1.default.join(snapshotDirectory, "esbuild.merged.snapshot");
if (!fs_1.default.existsSync(snapshotDirectory)) {
fs_1.default.mkdirSync(snapshotDirectory);
}
const configString = (config) => util_1.default.inspect(config, { depth: Infinity, compact: false });
fs_1.default.writeFileSync(path_1.default.join(snapshotDirectory, "esbuild.original.snapshot"), `${configString(build.initialOptions)}`);
build.onEnd(() => {
fs_1.default.writeFileSync(fileConfigMergedPath, `${configString(build.initialOptions)}`);
});
},
};
}