Crystal Ball ESLint Configs
Usage
Extending this package's config will handle setting the base parserOptions, parser,
plugins and env:
module.exports = {
extends: '@crystal-ball/eloquence'
}
Overriden Rules
The only Airbnb code quality rule that is overriden is setting
no-use-before-define to
{ functions: false }
. This allows propTypes of
stateless functional components to be decalred before the component defintion using
a function declarartion:
Radical.propTypes = {
name: string.isRequired
}
export default function Radical({ name }) {
return <h1>{name} is RADICAL!</h1>
}
This lets us always declare our prop types before the component definition, which
is helpful when evaluating some new component.
Dependencies
All dependencies required for running ESLint will be installed as dependencies of
this package. This ensures that there are no conflicting versions of ESLint in a
consuming project's dependencies. Installed dependencies include:
- babel-eslint
- eslint
- eslint-config-airbnb
- eslint-config-prettier
- eslint-plugin-import
- eslint-plugin-jsx-a11y
- eslint-plugin-prettier
- eslint-plugin-react
- prettier
TypeScript
Linting for TypeScript is an opt-in. First, add the ESLint TS parser:
npm i typescript-eslint-parser
Then extend the TyepScript configuration:
module.exports = {
extends: '@crystal-ball/eloquence/typescript'
}