eslint-plugin-trove

1.1.3 • Public • Published

Eslint Plugin Trove Build Status

Rules

module-boundary:

  • Cannot reach into top-level notion-modules packages

no-state-prop:

  • Cannot access state properties directly inside mapStateToProps, must use function like getStatePropertyX(state)
  • Cannot access state properties directly inside createSelector

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
);

/eslint-plugin-trove/

    Package Sidebar

    Install

    npm i eslint-plugin-trove

    Weekly Downloads

    7

    Version

    1.1.3

    License

    MIT

    Last publish

    Collaborators

    • neurosnap