Esformatter plugin that converts comma `var` statements into separate `var` statements
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
lib
test
.gitignore
.travis.yml
CHANGELOG.md
Gruntfile.js
README.md
UNLICENSE
package.json

README.md

esformatter-var-each Build status

Esformatter plugin that converts comma var statements into separate var statements

This was created to make obfuscated scripts more palatable. However, it should be a nice addition to your web development tasks.

Features:

  • Preserves last character of var's (e.g. var a, b; -> var a; var b;)
  • Maintain indentation level of var's

Getting Started

Install the module with: npm install esformatter-var-each

Then, register it as a plugin and format your JS:

// Load and register our plugin
var esformatter = require('esformatter');
var esformatterVarEach = require('esformatter-var-each');
esformatter.register(esformatterVarEach);

// Format our code
esformatter.format([
  'var a = \'hello\',',
  '    b = \'world\';'
].join('\n'));
// var a = 'hello';
// var b = 'world';

Alternatively, load it via format directly:

var esformatter = require('esformatter');
esformatter.format([
  'var a = \'hello\',',
  '    b = \'world\';'
].join('\n'), {
  plugins: [
    'esformatter-var-each'
  ]
});

Documentation

esformatter-var-each exposes exports.transform for consumption by esformatter.

esformatterVarEach.transform(ast)

Walk AST and splice in var statements.

Warning: This mutates nodes in place

  • ast AbstractSyntaxTree - Abstract syntax tree provided by esformatter

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test.

Donating

Support this project and others by twolfson via gratipay.

Support via Gratipay

Unlicense

As of Nov 03 2014, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.