-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsnowpack-javascript-obfuscator.js
More file actions
30 lines (26 loc) · 964 Bytes
/
snowpack-javascript-obfuscator.js
File metadata and controls
30 lines (26 loc) · 964 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const JavaScriptObfuscator = require("javascript-obfuscator");
module.exports = (snowpackConfig, pluginOptions = {}) => {
return {
name: "snowpack-javascript-obfuscator",
async transform({ contents, fileExt, filePath, isDev }) {
if (isDev) return contents; // don't obfuscate if running in dev server
if (fileExt !== ".js") return contents; // we only care about .js files
const { jsObfuscatorOpts = {} } = pluginOptions;
// check if we are only obfuscating specific files
if ("filesToObfuscate" in pluginOptions) {
if (pluginOptions.filesToObfuscate.includes(filePath)) {
return JavaScriptObfuscator.obfuscate(
contents,
jsObfuscatorOpts
).getObfuscatedCode();
}
} else {
// if not, obfuscate all
return JavaScriptObfuscator.obfuscate(
contents,
jsObfuscatorOpts
).getObfuscatedCode();
}
},
};
};