npm.io
3.3.0 • Published 2 weeks ago

@aiou/eslint-config

Licence
MIT
Version
3.3.0
Deps
29
Size
724 kB
Vulns
0
Weekly
0
Stars
2

@aiou/eslint-config

npm GitHub

Flat ESLint config with TypeScript, React, SSR, and more.

Features

  • Common ignore patterns (dist, lib, .next, .nuxt, lock files, etc.)
  • TypeScript, YAML, JSONC, Markdown, TOML support
  • Built-in React rules via @eslint-react, react-refresh, and SSR-safe linting
  • Auto-detected framework support (Next.js, Tailwind CSS)
  • Import sorting and unused import removal via eslint-plugin-perfectionist
  • Sorted keys for package.json and tsconfig.json
  • Visual linting progress reporter

▲ @aiou/eslint-plugin-progress

Install

npm install @aiou/eslint-config --save-dev

Requires Node.js >= 20.19 and ESLint >= 10.

Usage

In eslint.config.mjs:

import { aiou } from '@aiou/eslint-config'

export default await aiou()
With Options
import { aiou } from '@aiou/eslint-config'

export default await aiou({
  ssr: true,
  regexp: true,
})
With Custom Overrides
import { aiou } from '@aiou/eslint-config'

export default await aiou(
  { ssr: false },
  {
    ignores: ['**/generated/**'],
    rules: {
      'no-console': 'off',
    },
  },
)

aiou() returns a FlatConfigComposer — you can chain .append(), .override(), etc.

Options

Option Type Default Description
ssr boolean true Enable SSR-safe rules — forbids direct access to window, document, navigator, location, history, localStorage without typeof guards
regexp boolean true Enable eslint-plugin-regexp recommended rules

Auto-Detection

The following plugins are enabled automatically when their packages are found in your project:

Feature Package Plugin
Next.js next @next/eslint-plugin-next
Tailwind CSS tailwindcss eslint-plugin-tailwindcss

Style Defaults

Setting Value
Indentation 2 spaces
Quotes Single (JS/TS), Double (JSX, YAML)
Semicolons Never
Trailing commas always-multiline
Arrow parens as-needed
Curly all
File naming kebab-case (via unicorn)
Import sorting type-imports → builtins/externals → internal → relative → side-effects (via perfectionist)

Included Plugins

Plugin Notes
@typescript-eslint/eslint-plugin TypeScript rules, type imports, enum prohibition
@eslint-react/eslint-plugin React rules (recommended-typescript, dom, x, web-api)
eslint-plugin-react-hooks Hooks rules
eslint-plugin-react-refresh React Refresh compatibility
@stylistic/eslint-plugin Formatting rules
eslint-plugin-import-x Import rules
eslint-plugin-perfectionist Import sorting, type sorting (union/intersection/named imports)
eslint-plugin-unused-imports Unused import/variable removal
eslint-plugin-unicorn Best practice rules
eslint-plugin-n Node.js rules
eslint-plugin-promise Promise rules
eslint-plugin-jsonc JSON/JSONC rules + sorted package.json/tsconfig.json keys
eslint-plugin-yml YAML rules
@eslint/markdown Markdown linting
eslint-plugin-toml TOML rules
eslint-plugin-regexp RegExp rules (when regexp: true)
@eslint-community/eslint-plugin-eslint-comments ESLint directive rules
eslint-plugin-etc TypeScript extras (no single-char type params)
@next/eslint-plugin-next Next.js rules (auto-detected)
eslint-plugin-tailwindcss Tailwind CSS rules (auto-detected)
@aiou/eslint-plugin-progress Visual progress reporter

Exports

  • aiou(options?, ...userConfigs) — Main factory. Returns FlatConfigComposer.
  • all — Full flat config array of all rules (useful for tooling/typegen).