Eric Foster 35b96bc934 initial commit 6 yıl önce
..
LICENSE initial commit 6 yıl önce
README.md initial commit 6 yıl önce
index.js initial commit 6 yıl önce
package.json initial commit 6 yıl önce
unreachableBranchTransformer.js initial commit 6 yıl önce

README.md

unreachable-branch-transform

Removes unreachable code branches in if statements, ternaries ?, and logical operations || &&, where the test is determinable (like comparing two constants). This is similar to what UglifyJS's "dead_code" compressor option does, but without the extra code transformations.

When combined with something like envify and browserify, you can perform conditional require calls without including more code than you need.

Install

npm install unreachable-branch-transform

Example outputs

// original 
var transport = process.env.TARGET === 'client' ? require('ajax') : require('fs');

// after envify
var transport = 'server' === 'client' ? require('ajax') : require('fs');
// then after unreachable-branch-transform
var transport = require('fs');
// original
if (process.env.NODE_ENV === 'development') {
  console.log('in dev mode');
} else {
  console.log('in some other mode');
}

// after envify
if ('production' === 'development') {
  console.log('in dev mode');
} else {
  console.log('in some other mode');
}

// then after unreachable-branch-transform
{
  console.log('in some other mode');
}

Usage

  • unreachable-branch-transform can be used a browserify transform. Just include it like any other transform.
  • unreachable-branch-transform can also be used on raw code by calling the transform function exposed by requiring the package.

Credit

esmangle-evaluator is from the esmangle project.