@flashyos/eslint-config
v0.1.0
Published
The estate's shared ESLint base. One config every property extends, so a lint rule is argued once.
Readme
@flashyos/eslint-config
The estate's shared ESLint base. A lint rule is argued once, here, rather than in each repository's own forty-line flat config.
Use it
npm i -D eslint @flashyos/eslint-config// eslint.config.mjs
import flashyos from '@flashyos/eslint-config'
export default [...flashyos]For a Next application, extend the Next entry instead — it is separate because
eslint-config-next is a real dependency and the estate's static generators
must be able to extend the base without installing Next to do it:
import flashyos from '@flashyos/eslint-config/next'
export default [...flashyos]Then add the script the estate's shared CI looks for:
{ "scripts": { "lint": "eslint ." } }What it assumes
no-undefis off. TypeScript resolves every identifier already, and in an untyped repository it fires on every Node global — which is the most common reason a property's first lint run is abandoned.- Unused bindings prefixed
_are deliberate. - Compiled output, minified files and
vendor-*.mjsare ignored. The vendored files are byte-identical copies by design; a lint fix in one breaks the drift comparisonestate-hygieneruns rather than improving anything.
Why it exists
Lint config was the estate's worst-covered dimension — 17 of 26 repositories
— and the reason was never disagreement about style. Adopting a linter meant
writing a flat config from scratch, and nine properties never got round to it.
A standard that costs forty lines per property is a standard most properties
skip.
