UNPKG

@rbf/parcel-optimizer-javascript-obfuscator

Version:

Optimizer plugin for Parcel v2 to obfuscate JavaScript files using javascript-obfuscator.

41 lines (32 loc) 1.17 kB
const {Optimizer} = require("@parcel/plugin"); const JavaScriptObfuscator = require("javascript-obfuscator"); // DOC: https://parceljs.org/plugin-system/authoring-plugins module.exports = new Optimizer({ // DOC: https://parceljs.org/plugin-system/authoring-plugins/#loading-configuration async loadConfig({config}) { let javaScriptObfuscatorConfig = await config.getConfig([ "javascript-obfuscator.config.json" ]); if (javaScriptObfuscatorConfig !== null) { return javaScriptObfuscatorConfig.contents; } else { return {}; } }, // DOC: https://parceljs.org/plugin-system/optimizer/ async optimize({contents, map, bundle, config}) { // Don't obfuscate if shouldOptimize is false. if (!bundle.env.shouldOptimize) { return {contents, map}; } // DOC: https://github.com/javascript-obfuscator/javascript-obfuscator#usage // SOURCE: https://github.com/jabuco/parcel-plugin-obfuscate/blob/master/src/ObfuscatePackager.js let obfuscatedCode = await JavaScriptObfuscator.obfuscate( contents, config ).getObfuscatedCode(); return { contents: obfuscatedCode }; } });