4.0.0 • Published 6 months ago

eslint-config-moon v4.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

eslint-config-moon

build status npm version npm license

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-moon

Setup

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 the node preset.
  • moon/node - Sets the environment to Node.js and enables the node plugin. Should not be used with the browser preset.
  • moon/react - Enables the react, react-hooks, react-perf, and jsx-a11y plugins.
    • Only applies to *.tsx files and also extends the browser preset.
    • Enables automatic JSX runtime if react version is 17+.
  • moon/solid - Enables the solid plugin.
    • Only applies to *.tsx files and also extends the browser preset.

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.project based on the root tsconfig.json.
  • Avoids any type and unsafe operations.
  • Uses tabs over spaces for accessibility compliance.

Requirements

  • Source files must be located in a src folder.
  • Tests files must end in *.test.* and be located within a tests or __tests__ folder.
  • Relies on TypeScript for parsing files.
  • Root package.json contains a Node.js engine for the target runtime.
4.0.0

6 months ago

3.1.3

10 months ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.0

1 year ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.0

2 years ago

2.0.16

2 years ago

2.0.15

2 years ago

2.0.14

2 years ago

2.0.13

2 years ago

2.0.11

2 years ago

2.0.12

2 years ago

2.0.9

2 years ago

2.0.10

2 years ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.1

3 years ago

1.4.2

3 years ago

2.0.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.3

3 years ago

1.0.0

3 years ago

0.1.0

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago