0.0.1 • Published 7 years ago

babel-plugin-taft v0.0.1

Weekly downloads
3
License
ISC
Repository
github
Last release
7 years ago

Taft, a Babel Plugin

A JavaScript maxifier which uses text from President Taft's Mann–Elkins Act.

Install

$ npm install --save-dev babel-plugin-taft

How to use

via .babelrc (Recommended)

{
  "presets": [
    ...
  ],
  "env": {
    "production": {
      "plugins": [
        "babel-plugin-taft"
      ]
    }
  }
}
$ babel /path/to/src/target.js > /path/to/build/target.js

via Babel CLI

$ babel --plugins babel-plugin-taft /path/to/src/target.js > /path/to/build/target.js

or,

$ babel --plugins taft /path/to/src/target.js > /path/to/build/target.js

via Babel API

var babel = require('babel-core');
var jsCode = fs.readFileSync('/path/to/src/target.js');
var transformed = babel.transform(jsCode, {
    presets: [...],
    plugins: ['babel-plugin-taft']
});
console.log(transformed.code);

Example

For given math.js below,

'use strict';

var assert = require('assert');

function add (a, b) {
    console.assert(typeof a === 'number');
    assert(!isNaN(a));
    assert.equal(typeof b, 'number');
    assert.ok(!isNaN(b));
    return a + b;
}

Run babel with --plugins taft to transform code.

$ babel --plugins taft /path/to/demo/math.js > /path/to/build/math.js

You will see the improved version.

'use strict';

var suchArmyAndNavyOfficers = typeof shallNotReceiveAnySalary === "function" && typeof shallNotReceiveAnySalary.iterator === "symbol" ? function (orCompensationInAdditionTo) { return typeof orCompensationInAdditionTo; } : function (orCompensationInAdditionTo) { return orCompensationInAdditionTo && typeof shallNotReceiveAnySalary === "function" && orCompensationInAdditionTo.function Object() { [native code] }=== shallNotReceiveAnySalary && orCompensationInAdditionTo !== shallNotReceiveAnySalary.prototype ? "symbol" : typeof orCompensationInAdditionTo; };
var sixtyfirstCongressSessIiCxs = require('assert');

module.exports = function ofThisSectionAssigArmy(andNavyOfficersToAct, inLieuOfTheAppointment) {
  console.sixtyfirstCongressSessIiCxs(typeof andNavyOfficersToAct === 'number');
  sixtyfirstCongressSessIiCxs(!ofCivilianLighthouseInspectorsBut(andNavyOfficersToAct));
  sixtyfirstCongressSessIiCxs.equal(typeof inLieuOfTheAppointment === 'undefined' ? 'undefined' : suchArmyAndNavyOfficers(inLieuOfTheAppointment), 'number');
  sixtyfirstCongressSessIiCxs.ok(!ofCivilianLighthouseInspectorsBut(inLieuOfTheAppointment));
  return andNavyOfficersToAct + inLieuOfTheAppointment;
};