@nimoh-digital-solutions/eslint-config
v1.0.5
Published
Shared ESLint flat config for Nimoh Digital Solutions React projects
Readme
@nimoh-digital-solutions/eslint-config
Shared ESLint flat config for Nimoh Digital Solutions React + TypeScript projects. Includes TypeScript strict rules, React best practices, JSX accessibility, and opinionated import sorting.
Installation
npm install -D @nimoh-digital-solutions/eslint-config
# or
yarn add -D @nimoh-digital-solutions/eslint-configPeer dependencies
Install all required peer dependencies:
npm install -D eslint @eslint/js @typescript-eslint/eslint-plugin @typescript-eslint/parser \
eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks \
eslint-plugin-react-refresh eslint-plugin-simple-import-sort globals| Package | Version |
|---|---|
| eslint | >=8 |
| @eslint/js | >=8 |
| @typescript-eslint/eslint-plugin | ^8 |
| @typescript-eslint/parser | ^8 |
| eslint-plugin-jsx-a11y | ^6 |
| eslint-plugin-react | ^7 |
| eslint-plugin-react-hooks | ^5 |
| eslint-plugin-react-refresh | ^0.4 |
| eslint-plugin-simple-import-sort | ^12 |
| globals | >=15 |
Usage
Create an eslint.config.js (or .mjs) in your project root:
import sharedConfig from '@nimoh-digital-solutions/eslint-config';
export default [
...sharedConfig,
// your project overrides
];That's it. The config is a flat config array that you spread into your own.
What's included
Language & parser
- TypeScript parser for all
.ts,.tsx,.js,.jsxfiles - ES2022 source type, browser globals
Plugins
| Plugin | Purpose |
|---|---|
| @typescript-eslint | TypeScript-aware rules |
| eslint-plugin-react | React best practices (JSX runtime mode) |
| eslint-plugin-react-hooks | Rules of hooks |
| eslint-plugin-react-refresh | Fast Refresh boundary checks |
| eslint-plugin-jsx-a11y | Accessibility (recommended) |
| eslint-plugin-simple-import-sort | Deterministic import/export ordering |
Import sort order
Imports are automatically grouped:
- React
- External packages
- Internal aliases (
@/…) - Relative imports
- Style imports (
.scss,.css)
Key rules
| Rule | Severity | Notes |
|---|---|---|
| @typescript-eslint/no-explicit-any | error | No any |
| @typescript-eslint/no-floating-promises | error | Must await or void promises |
| prefer-const | error | Use const over let when possible |
| no-console | warn | Only in src/ — allows warn, error, info |
| React hooks rules | error | Enforced |
| JSX a11y | recommended | Full recommended set |
Ignored paths
dist, node_modules, coverage, e2e, playwright-report, test-results
Customization
Override any rule in your project config:
import sharedConfig from '@nimoh-digital-solutions/eslint-config';
export default [
...sharedConfig,
{
rules: {
'no-console': 'off',
'@typescript-eslint/no-explicit-any': 'warn',
},
},
];Development
This package lives in the TAST monorepo.
License
MIT
