0.0.12 • Published 3 months ago

eslint-config-airbnb-flat v0.0.12

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

eslint-config-airbnb-flat

Unofficial migration of the airbnb styleguide from eslintrc format to flat config file format.

Setup

Install

npm i -D eslint-config-airbnb-flat

Configure

Base Example:

With "type": "module" in package.json (recommended):

import defineConfig from 'eslint-config-airbnb-flat/base';

export default defineConfig({
	files: ['path/**/*.js'],
	rules: {
		// add custom rules
	},
});

The default export is a function which accepts custom overrides and returns an optimized version of the eslint-config-airbnb-base config.

Customize

If you want to override one of the rules of the added plugins, make sure to use the corresponding prefix:

Original PrefixNew prefix
i/*import/*
n/*node/*
@typescript-eslint/*typescript/*
@stylistic/*stylistic/*

You can also use only specific configuration files:

import { node } from 'eslint-config-airbnb-flat/configs';

export default [node];

Plain Compat

These are just the plain, unomptimized converted configs (use them at your own risk).

import airbnb from 'eslint-config-airbnb-flat/compat';

console.log(Object.keys(configs));

Roadmap

  • ✅ bundle (with esbuild to esm)
  • 🔳 convert (whole) codebase to typescript
  • 🔳 export create type declarations (defineBaseConfig)
  • ✅ add stylistic plugin and rules
  • 🔳 add tests (esp. import/no-unresolved)
  • ✅ deprecated: node/no-hide-core-modules, node/no-unsupported-features
  • 🔳 node: differentiate esm and cjs globals (?)
  • 🔳 support typescript in monorepo (parserOptions.project is set to 'true')
  • 🔳 support React (jsx, tsx)