eslint-config-moon v4.0.0
eslint-config-moon
A modern and strict ESLint configuration with optional presets and first-class TypeScript support. Expands upon the amazing Airbnb config to provide the latest ECMAScript features, enforce popular patterns, and align with the wider community.
yarn add --dev eslint eslint-config-moonSetup
Extend the moon config in your root .eslintrc.js. Additional presets are available
for additional rules.
module.exports = {
root: true,
extends: ['moon'],
};Presets
The following additional configs can also be extended, but are not enabled by default.
moon/browser- Sets the environment to the browser/DOM and enables the compat plugin. Should not be used with thenodepreset.moon/node- Sets the environment to Node.js and enables the node plugin. Should not be used with thebrowserpreset.moon/react- Enables the react, react-hooks, react-perf, and jsx-a11y plugins.- Only applies to
*.tsxfiles and also extends thebrowserpreset. - Enables automatic JSX runtime if
reactversion is 17+.
- Only applies to
moon/solid- Enables the solid plugin.- Only applies to
*.tsxfiles and also extends thebrowserpreset.
- Only applies to
Features
- Extends the airbnb-base config and enables additional rules.
- Prefers named exports over default exports.
- Enforces async/await/promise best practices with the promise plugin.
- Sorts imports/exports in a logical way using the simple-import-sort plugin.
- Encourages readable tests with the jest plugin. Only applies to test files.
- Enables additional awesome rules from the unicorn plugin.
- Automatically sets
parserOptions.projectbased on the roottsconfig.json. - Avoids
anytype and unsafe operations. - Uses tabs over spaces for accessibility compliance.
Requirements
- Source files must be located in a
srcfolder. - Tests files must end in
*.test.*and be located within atestsor__tests__folder. - Relies on TypeScript for parsing files.
- Root
package.jsoncontains a Node.jsenginefor the target runtime.
8 months ago
11 months ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago