eslint-plugin-immutablejs
v0.1.3
Published
ESLint rules for projects using Immutable.js
Downloads
1,402
Maintainers
Readme
eslint-plugin-immutablejs
A set of ESLint rules for projects using Immutable.js
.
Usage
Install
npm install --save-dev eslint-plugin-immutablejs
Configure
In .eslintrc
, add a plugins
array, and add immutablejs
.
{
"plugins": ["immutablejs"]
}
Then, enable any rule(s) you wish to use, in the form of immutablejs/rule-name-here
.
Rules
no-native-map-set
Why?
There are 2 primary reasons for this rule.
When using
React
withImmutable.js
, there are times when you will be passing down aprop
that is expected to be aMap
orSet
. When usingReact
'sPropTypes
feature with theinstanceOf
validator, it's very easy to forget to importImmutable.js
, and you'll end up with unfortunate errors if you aren't actively looking forPropType
warnings in the console.Catching when you use
Map
/Set
, but forget to import them. If you run your code without this rule, you'll get an error thatMap
/Set
cannot be invoked without thenew
operator. This rule aims to catch this and provide a more obvious error before you run your code.
Rule Details
Examples of incorrect code for this rule:
// ImmutableJS Map/Set not in scope
const mySet = Set();
const myMap = Map();
const myOtherSet = new Set();
const myOtherMap = new Map();
Examples of correct code for this rule:
import { Map, Set } from 'immutable';
const mySet = Set();
const myMap = Map();
Contributing
- Write your rule in a new file in the
rules
folder - Add a test file in the
test
folder, and write appropriate test-cases - Add documentation about your rule to
README.md
- Export your rule in
index.js
- Submit a Pull Request