@aggreggator-labs/config-eslint
v0.0.1
Published
Shared ESLint flat config for aggreggator-labs repositories - spread it after the ignores of a repo-local eslint.config.mjs
Downloads
92
Maintainers
Readme
@aggreggator-labs/config-eslint
The shared ESLint flat config for aggreggator-labs repositories.
index.mjs is the source of truth; a repository spreads it after
its own ignores and carries no second copy of a rule.
Usage
bun add -d @aggreggator-labs/config-eslint eslint typescriptRoot eslint.config.mjs:
import shared from '@aggreggator-labs/config-eslint';
export default [
{ ignores: ['dist/**', 'coverage/**'] },
...shared,
];Only the rules are shared; ignores are each repository's own.
The spread keeps eslint-config-prettier as the last element, so
Prettier wins every formatting conflict. The package brings its
plugins along as dependencies; a consumer installs eslint (10
or newer) and typescript itself.
Rules
On top of @eslint/js recommended and typescript-eslint
recommended - not type-aware, projectService is off - for
.js, .mjs, .cjs, .ts, .tsx and .jsx files, with Node
globals:
no-consoleoffimport-x/orderwarn - builtin, external, internal, parent, sibling, index, type; a blank line between groups; alphabetised without regard to case@typescript-eslint/consistent-type-importswarn - preferimport type@typescript-eslint/no-explicit-anyoff@typescript-eslint/no-unused-varsoff - theunused-importspair below reports instead, onceunused-imports/no-unused-importswarnunused-imports/no-unused-varswarn - all variables, arguments after the last used one; names starting with_are ignored
Browser globals and React rules are not part of this config; either would be a second export, not a change to this one.
Publishing
Releases are staged, never pushed live by a machine. A push to
main with a new version in package.json runs
.github/workflows/publish-npm.yml in the dotfiles repository,
which stages the version on npmjs through trusted publishing
(GitHub OIDC, no token; no provenance, which npm attaches only
for public source repositories). A maintainer then approves it
with two-factor authentication - npm stage approve or the
package page - and only then is it on the registry. An unchanged
version stages nothing and says so. Bump the version here to
release; patch bumps (0.0.x) by default.
