@js-toolkit/eslint-config
v1.1.4
Published
Shared ESLint flat config with custom rules (common + web)
Readme
@js-toolkit/eslint-config
Shared ESLint flat config with custom rules for TypeScript projects.
Install
pnpm add -D @js-toolkit/eslint-config eslint typescript typescript-eslint @eslint/js @eslint/compat eslint-config-prettier globalsExports
| Export | Description |
|--------|-------------|
| ./common | Base config: TypeScript, import, promise, standard rules |
| ./web | Web config: React, JSX, a11y (extends common) |
| ./plugin | Custom ESLint plugin with additional rules |
Usage
Basic (TypeScript)
// eslint.config.js
import { create } from '@js-toolkit/eslint-config/common';
export default create();With custom rules
// eslint.config.js
import { create } from '@js-toolkit/eslint-config/common';
export default [
...create(),
{
rules: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
];Web (React)
// eslint.config.js
import { create as createCommon } from '@js-toolkit/eslint-config/common';
import { create as createWeb } from '@js-toolkit/eslint-config/web';
export default [
...createCommon(),
...createWeb(),
];With typed linting
// eslint.config.js
import { getFilesGlob, getTSExtensions } from '@js-toolkit/config-utils/extensions';
import { create as createCommon } from '@js-toolkit/eslint-config/common';
export default [
...createCommon(),
{
files: [getFilesGlob(getTSExtensions(), 'src/')],
languageOptions: {
parserOptions: { projectService: { defaultProject: 'tsconfig.json' } },
},
},
];Custom plugin
The package includes a custom ESLint plugin with the following rules:
@js-toolkit/strict-boolean-expressions— stricter boolean expression checks@js-toolkit/no-unnecessary-optional-chain— disallow unnecessary optional chaining@js-toolkit/no-namespace-except-declaration-merge— disallow namespaces except for declaration merging
// eslint.config.js
import plugin from '@js-toolkit/eslint-config/plugin';
export default [
{
plugins: { '@js-toolkit': plugin },
rules: {
'@js-toolkit/strict-boolean-expressions': 'error',
},
},
];Peer Dependencies
Required:
eslint>= 9.0.0typescript>= 5.0.0typescript-eslint>= 8.0.0@eslint/js>= 10.0.0@eslint/compat>= 2.0.0eslint-config-prettier>= 10.0.0globals>= 15.0.0
Optional (auto-detected and applied when installed):
eslint-config-airbnb-base/eslint-config-airbnbeslint-config-standardeslint-plugin-import-x/eslint-plugin-importeslint-import-resolver-typescripteslint-plugin-promiseeslint-plugin-react,eslint-plugin-react-hookseslint-plugin-jsx-a11yeslint-plugin-prettiereslint-plugin-jsdoc/eslint-plugin-tsdoceslint-plugin-wc/eslint-plugin-liteslint-plugin-mobx@babel/eslint-parserts-api-utils
License
MIT
