Skip to content

leviy/eslint-plugin-es5

 
 

Repository files navigation

eslint-plugin-es5

CircleCI

ESLint plugin for ES5 users.

Why?

Sometimes someone doesn't want or can't to use Babel. Even if you support modern browsers or node.js, JS engines have bugs like broken block-scoping. Maybe you only want to forbid usage of for-of in your project.

If this concerns you, this plugin should help you.

Installation

npm install --save-dev eslint-plugin-es5

Usage

Add the plugin to your .eslintrc:

{
  "plugins": [
    "es5"
  ]
}

And then any of the rules listed below like this:

{
  "rules": {
    "es5/no-arrow-functions": "error"
  }
}

Also you can extend one of presets:

{
  "extends": [
    "eslint:recommended",
    "plugin:es5/no-es2015"
  ]
}

Available presets:

  • plugin:es5/no-es2015: Forbid ES2015 usage.
  • plugin:es5/no-es2016: Forbid ES2016 usage.

List of supported rules

  • es5/no-es6-methods Forbid ES2015 methods for Array and String. You can disable them using options: "es5/no-es6-methods": ["error", { "find": false }]
  • es5/no-es6-static-methods Forbid ES2015 static methods for Array, Math, Number, and Object
  • es5/no-arrow-functions🔧: Forbid arrow-functions.
  • es5/no-binary-and-octal-literals🔧: Forbid binary and octal literals.
  • es5/no-block-scoping: Forbid let and const declarations. You can enable them using options: "es5/no-block-scoping": ["error", { "let": true }]
  • es5/no-classes: Forbid ES2015 classes.
  • es5/no-computed-properties: Forbid computed properties.
  • es5/no-default-parameters: Forbid default parameters.
  • es5/no-destructuring🔧: Forbid destructuring statements.
  • es5/no-exponentiation-operator: Forbid exponentiation operator a ** b usage.
  • es5/no-for-of: Forbid for-of statements.
  • es5/no-generators: Forbid generators usage.
  • es5/no-modules: Forbid ES2015 modules usage.
  • es5/no-object-super: Forbid super/super.foo() calls.
  • es5/no-rest-parameters: Forbid rest parameters.
  • es5/no-shorthand-properties🔧: Forbid shorthand properties.
  • es5/no-spread🔧: Forbid ...spread expressions.
  • es5/no-template-literals🔧: Forbid template strings usage.
  • es5/no-typeof-symbol: Forbid typeof foo === 'symbol' checks.
  • es5/no-unicode-code-point-escape🔧: Forbid Unicode support in code point escape.
  • es5/no-unicode-regex: Forbid Unicode support in RegExp.

License

MIT