JSPM

obfuscator-io-metro-plugin

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6693
  • Score
    100M100P100Q145763F
  • License MIT

A metro plugin to use javascript-obfuscator library with react-native

Package Exports

  • obfuscator-io-metro-plugin

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (obfuscator-io-metro-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Obfuscator.io Metro Plugin

This metro plugin obfuscate your React Native bundle using javascript-obfuscator

Usage

Include the plugin in your metro.config.js:

const jsoMetroPlugin = require("javascript-obfuscator-metro-plugin")(
  {
    // for these option look javascript-obfuscator library options from  above url
    compact: false,
    sourceMap: true,
    controlFlowFlattening: true,
    controlFlowFlatteningThreshold: 1,
    numbersToExpressions: true,
    simplify: true,
    shuffleStringArray: true,
    splitStrings: true,
    stringArrayThreshold: 1,
  },
  {
    runInDev: false /* optional */,
    logObfuscatedFiles: true /* optional */, // to log obfuscated files seperately , it is located at ./.jso
  }
);

module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  },
  ...jsoMetroPlugin,
};

For obfuscation options configuration docs see: https://github.com/javascript-obfuscator/javascript-obfuscator