npm install fixmyjs -g
var fixmyjs = require('fixmyjs') var stringFixedCode = fixmyjs.fix(stringOfCode, objectOfOptions)
These options are mostly named after their JSHINT counterparts.
delete- Removes deletion of variables
emptyStatement- Removes empty statements
initUndefined- Rewrites variable initializations to undefined
invalidConstructor- Does not allow you to initialize built-in primitive constructors
isNaN- Replaces equality to NaN with isNaN
useLiteral- Rewrites your primitives to use their literal form
When these are set to true the options apply.
camelcase- Converts all identifiers to camelCase
curly- Adds curly braces to all statements that don't have them
es3- Adds a radix parameter to parseInt
nonew- Removes new when using it for side effects
snakecase- Convert all identifiers to snake_case
multivar- Replace single var with multi line var
eqeqeq- Enforce strict equality
When these are set to false the options apply.
debug- Removes debugger statements
sub- Dot notation conversion
fixmyjs supports a
legacy mode which can be used via the CLI and programatically.
fixmyjs --legacy your_file.js
var jshint = require('jshint').JSHINT var fixmyjs = require('fixmyjs') jshint(stringOfCode, objectOfOptions) var stringFixedCode = fixmyjs(jshint.data(), stringOfCode, objectOfOptions).run()
Why is it legacy?
We're planning on moving away from code string transformations and into transforming the AST directly because these rules are easier to write, maintain, and offers flexibility in terms of what can be supported.
2.0 release will have fixmyjs using recast which will make fixmyjs more performant and less destructive, esformatter will also be included to perform any style changes.