Socket
Socket
Sign inDemoInstall

react-native-obfuscating-transformer

Package Overview
Dependencies
574
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    react-native-obfuscating-transformer

Obfuscating transformer for react-native


Version published
Weekly downloads
2K
decreased by-10.02%
Maintainers
1
Install size
20.9 MB
Created
Weekly downloads
 

Readme

Source

react-native-obfuscating-transformer

Obfuscate selected source files when building for React Native.

Installation

yarn add react-native-obfuscating-transformer --dev

or

npm install react-native-obfuscating-transformer --save-dev

Usage

/rn-cli.config.js

 module.exports = {
+  transformer {
+    babelTransformerPath: require.resolve("./transformer")
+  },
 }

/transformer.js

const obfuscatingTransformer = require("react-native-obfuscating-transformer")

module.exports = obfuscatingTransformer({
  /* options */
})

Configuration

Options are:

upstreamTransformer: MetroTransformer

Defines what the first pass of code transformation is. If you don't use a custom transformer already, you don't need to set this option.

TypeScript example:

 const obfuscatingTransformer = require('react-native-obfuscating-transformer')
+ const typescriptTransformer = require('react-native-typescript-transformer')

 module.exports = obfuscatingTransformer({
+  upstreamTransformer: typescriptTransformer
 })
Default value: require('metro/src/transformer')

filter: (filename: string, source: string) => boolean

Returns true for any files that should be obfuscated and false for any files which should not be obfuscated.

By default, it obfuscates all files in src/**/*

obfuscatorOptions: ObfuscatorOptions

Warning — Not all options are guaranteed to produce working code. In particular, stringArray definitely breaks builds.

See the javascript-obfuscator docs for more info about what each option does.

interface ObfuscatorOptions {
  compact?: boolean
  controlFlowFlattening?: boolean
  controlFlowFlatteningThreshold?: 0.75
  deadCodeInjection?: boolean
  deadCodeInjectionThreshold?: 0.4
  debugProtection?: boolean
  debugProtectionInterval?: boolean
  disableConsoleOutput?: boolean
  domainLock?: string[]
  identifierNamesGenerator?: "hexadecimal" | "mangled"
  log?: boolean
  renameGlobals?: boolean
  reservedNames?: string[]
  rotateStringArray?: true
  seed?: 0
  selfDefending?: boolean
  sourceMap?: boolean
  sourceMapBaseUrl?: string
  sourceMapFileName?: string
  sourceMapMode?: "separate" | "inline"
  stringArray?: boolean
  stringArrayEncoding?: boolean
  stringArrayThreshold?: 0.75
  target?: "browser" | "extension" | "node"
  unicodeEscapeSequence?: boolean
}

trace: boolean

Iff true, prints a list of files being obfuscated

Default value: false

emitObfuscatedFiles: boolean

Iff true, emits the obfuscated versions of files alongside their originals, for comparison.

Default value: false

enableInDevelopment: boolean

Iff true, enables obfuscation in development mode.

Default value: false

License

MIT

FAQs

Last updated on 28 Feb 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc