Skip to content

Commit cfb70ec

Browse files
author
David Sheldrick
committed
add option to emit obfuscated files
1 parent c4bcabd commit cfb70ec

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { extendFileExtension } from "../extendFileExtension"
2+
3+
describe("extendFileExtension", () => {
4+
it("adds an extension part", () => {
5+
expect(extendFileExtension("blah.js", "ext")).toBe("blah.ext.js")
6+
expect(extendFileExtension("blah.tsx", "obfuscated")).toBe(
7+
"blah.obfuscated.tsx",
8+
)
9+
expect(extendFileExtension("blah", "js")).toBe("blah.js")
10+
})
11+
})

src/extendFileExtension.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export function extendFileExtension(filename: string, extensionPart: string) {
2+
const parts = filename.split(".")
3+
parts.splice(1, 0, extensionPart)
4+
return parts.join(".")
5+
}

src/obfuscatingTransformer.ts

+11
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
obfuscateCode,
1818
obfuscateCodePreservingSourceMap,
1919
} from "./obfuscateCode"
20+
import { extendFileExtension } from "./extendFileExtension"
2021

2122
function getOwnCacheKey(upstreamCacheKey: string, configFilename: string) {
2223
var key = crypto.createHash("md5")
@@ -31,6 +32,7 @@ export interface ObfuscatingTransformerOptions {
3132
upstreamTransformer?: MetroTransformer
3233
obfuscatorOptions?: JavaScriptObfuscator.Options
3334
trace?: boolean
35+
emitObfuscatedFiles?: boolean
3436
}
3537

3638
const sourceDir = path.join(appRootPath, "src")
@@ -79,6 +81,15 @@ export function obfuscatingTransformer({
7981
}
8082
}
8183

84+
if (otherOptions.emitObfuscatedFiles) {
85+
const emitDir = path.dirname(props.filename)
86+
const filename = extendFileExtension(
87+
path.basename(props.filename),
88+
"obfuscated",
89+
)
90+
fs.writeFileSync(path.join(emitDir, filename), code)
91+
}
92+
8293
return maybeTransformMetroResult(
8394
obfuscateCodePreservingSourceMap(
8495
code,

0 commit comments

Comments
 (0)