@cogs/eslint-config
v0.2.10
Published
Shared flat ESLint configuration for the catesworks fleet
Readme
@cogs/eslint-config
Shared flat ESLint (v9+) configuration for the catesworks fleet. Exports a single
createConfig factory that returns an array of flat config objects covering base
JS/TS rules (typed via typescript-eslint projectService), import hygiene
(eslint-plugin-import + eslint-import-resolver-typescript), React + hooks +
JSX a11y, TanStack Query, MD/MDX linting, Jest and Testing Library rules for test
files, and Prettier conflict-disabling — so every repo lints the same way without
copy-pasting an eslint.config.mjs.
Install
pnpm add -D @cogs/eslint-config eslintUsage
In your repo's eslint.config.mjs:
import { createConfig } from '@cogs/eslint-config'
export default createConfig({
tsconfigRootDir: import.meta.dirname,
})createConfig accepts:
additionalIgnores?: string[]— extra glob patterns appended to the fleet-wide ignore defaultstsconfigRootDir?: string— root dir passed to typescript-eslint'sprojectService(defaults toprocess.cwd())tsProjects?: string[]— tsconfig paths used byeslint-import-resolver-typescript(defaults to['./tsconfig.json'])internalRegex?: string— regex identifying "internal" workspace imports for import ordering (defaults to^@cogs/)react?: boolean— enable the React + React Hooks + JSX a11y rule sets (defaults totrue; setfalsefor non-React packages)packageDirs?: string[]— directories to search when checking for extraneous dependencies
Need repo-specific tweaks? Spread and append:
import { createConfig } from '@cogs/eslint-config'
export default [
...createConfig({ tsconfigRootDir: import.meta.dirname }),
{
files: ['src/legacy/**/*.ts'],
rules: { '@typescript-eslint/no-explicit-any': 'off' },
},
]