css-mangle-webpack-plugin
Version:
This webpack plugin package is a CSS mangler that globally optimizes and shortens identifier names.
39 lines (38 loc) • 1.34 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "recast"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ManglerScript = void 0;
const recast = require("recast");
class ManglerScript {
source;
ast;
constructor(source) {
this.source = source;
this.ast = recast.parse(source);
}
setPropertyByName(name, builder) {
recast.visit(this.ast, {
visitProperty(path) {
const kName = path.node.key["name"];
const value = path.node.value;
if (kName == name && value.type == "Literal") { // a given name of object property.
path.node.value = recast.types.builders.literal(builder(value.value));
}
return false;
}
});
}
get code() {
return recast.print(this.ast).code;
}
}
exports.ManglerScript = ManglerScript;
});