2.2.1 • Published 6 months ago

@fledra/eslint-config v2.2.1

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

@fledra/eslint-config

NPM Version

One opinionated config for ESLint.

This config is a refactored/modified version of Anthony Fu's ESLint config. I will not copy every change from his config but I might occasionally yoink the ones I like.

  • ESLint Flat config format
  • Respects .gitignore by default
  • Code style: Minimal for reading, stable for diff, consistent... enough.

Usage

Install

First install eslint and this config:

pnpm i -D eslint @fledra/eslint-config

And create eslint.config.mjs in your project root:

// eslint.config.mjs
import fledra from '@fledra/eslint-config';

export default fledra();

Add script for package.json

For example:

{
  "scripts": {
    "lint": "eslint",
    "lint:fix": "eslint --fix"
  }
}

Customization

I followed Anthony's config for the most part so configuration options are pretty much the same. Check out customization section of his config for more info.

Important notes about configuration

  • type key does not exist in the configuration object

Plugins Renaming

I thought I did not want any plugin renaming at first but only kept the original name of @typescript-eslint, which was confusing.

From version 2.0.0 onwards plugin renaming is enabled by default.

New PrefixOriginal PrefixSource Plugin
import/*import-x/*eslint-plugin-import-x
node/*n/*eslint-plugin-n
yaml/*yml/*eslint-plugin-yml
ts/*@typescript-eslint/*@typescript-eslint/eslint-plugin
style/*@stylistic/*@stylistic/eslint-plugin

When you want to override rules, or disable them inline, you need to use the new prefix:

-// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
+// eslint-disable-next-line ts/consistent-type-definitions
type foo = { bar: 2 }

Change back to original prefix

If you really want to use the original prefix, you can revert the plugin renaming by:

import fledra from '@fledra/eslint-config';

export default fledra()
  .renamePlugins({
    ts: '@typescript-eslint',
    yaml: 'yml',
    node: 'n'
    // ...
  });

License

MIT License © 2025-PRESENT Baran D. (Fledra)