JSPM

  • Created
  • Published
  • Downloads 12990
  • Score
    100M100P100Q143056F
  • License MIT

Reusable ESLint config for Beemo configured projects.

Package Exports

  • eslint-config-niieani
  • eslint-config-niieani/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-config-niieani) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

eslint-config-beemo

Build Status npm version npm deps

A modern TypeScript-only ESLint config with optional presets. Expands upon the amazing Airbnb config to provide the latest ECMAScript features, enforce popular patterns, and align with the wider community.

yarn install --dev eslint eslint-config-niieani

Setup

Extend the niieani config in your root .eslintrc.js. Additional presets are available for additional rules.

module.exports = {
  root: true,
  extends: ['niieani'],
}

Presets

The following additional configs can also be extended, but are not enabled by default.

  • niieani/browser - Sets the environment to the browser/DOM and enables the compat plugin. Should not be used with the node preset.
  • niieani/node - Sets the environment to Node.js and enables the node plugin. Should not be used with the browser preset.
  • niieani/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 root react version is 17+.

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.{ts,tsx} 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.