UNPKG

css-mangle-webpack-plugin

Version:

This webpack plugin package is a CSS mangler that globally optimizes and shortens identifier names.

30 lines (24 loc) 894 B
import { ManglerRenameBuilder } from "../types"; import { NodePath } from "ast-types/lib/node-path"; import * as recast from "recast"; export class ManglerScript { ast: any; constructor(public source: string) { this.ast = recast.parse(source); } setPropertyByName(name: string, builder: ManglerRenameBuilder) { 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 as string)); } return false; } }); } get code(): string { return recast.print(this.ast).code; } }