rollup-obfuscator
Version:
A plugin to obfuscate javascript for rollup & vite based on https://www.npmjs.com/javascript-obfuscator
42 lines (40 loc) • 1.11 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/index.ts
import { createFilter } from "@rollup/pluginutils";
import Obfuscator from "javascript-obfuscator";
function obfuscator(options = {}) {
const {
include = ["**/*.js", "**/*.ts"],
exclude = ["node_modules/**"],
sourceMap = true,
...obfuscatorOptions
} = options;
const filter = createFilter(include, exclude);
return {
name: "obfuscator",
apply: "build",
enforce: "post",
transform(code, id) {
if (!filter(id)) {
this.debug?.(`[rollup-obfuscator] Ignoring "${id}"`);
return null;
}
this.debug?.(`[rollup-obfuscator] Obfuscating "${id}"`);
const result = Obfuscator.obfuscate(code, {
stringArray: false,
...obfuscatorOptions,
inputFileName: id,
sourceMap
});
return {
code: result.getObfuscatedCode(),
map: sourceMap ? result.getSourceMap() : void 0
};
}
};
}
__name(obfuscator, "obfuscator");
export {
obfuscator
};