1.1.3 • Published 8 years ago
eslint-plugin-trove v1.1.3
Eslint Plugin Trove 
Rules
module-boundary:
- Cannot reach into top-level
notion-modulespackages
no-state-prop:
- Cannot access
stateproperties directly insidemapStateToProps, must use function likegetStatePropertyX(state) - Cannot access
stateproperties directly insidecreateSelector
module-boundary
This rule will check all import/require to ensure it does not reach into a top-level notion-modules package
Valid
import { actionCreators } from 'notion-modules/thread';Invalid
import { actionCreators } from 'notion-modules/thread/message';no-state-prop
This rule will check mapStateToProps for code trying to access state properties directly.
Valid
import { connect } from 'react-redux';
import { getItem } from './selectors';
const App = () => {};
connect((state) => {
return {
item: getItem(state),
};
})(App);Invalid
import { connect } from 'react-redux';
const App = () => {};
connect((state) => {
return {
item: state.item,
};
})(App);This rule will check createSelector for code trying to access state properties directly.
Valid
import { createSelector } from 'reselect';
const getItem = (state) => state.item;
const getItemOpen = createSelector(
getItem,
(item) => item.open
);Invalid
import { createSelector } from 'reselect';
const getItem = createSelector(
(state) => state.item,
(item) => item
);