@alborz-taiv/taiv-eslint-config
v1.2.0
Published
Taiv's shared ESLint configuration for consistent code formatting and linting across all projects.
Readme
@alborz-taiv/taiv-eslint-config
Taiv's shared ESLint configuration for consistent code quality and linting across all projects.
Installation
npm install --save-dev @alborz-taiv/taiv-eslint-configUsage
This package uses ESLint's new flat config format. Import the config for your stack into an eslint.config.mjs file and extend as needed.
// eslint.config.mjs
import { reactConfig } from '@alborz-taiv/taiv-eslint-config';
export default [...reactConfig];Available Configs
base- Base TypeScript configuration.react- React configuration for web apps.node- Node.js configuration for servers and backends.
Extending Configurations
You can extend any configuration by spreading it and adding your own rules:
// eslint.config.mjs
import { reactConfig } from '@alborz-taiv/taiv-eslint-config';
export default [
...reactConfig,
{
rules: {
// Your custom rules here
'no-console': 'off',
},
},
{
ignores: ['**/dist/**/*', '**/build/**/*'],
},
];Prettier Configuration
This package includes linting with Prettier. It will lint based off of our formatting rules:
{
"tabWidth": 2,
"printWidth": 120,
"semi": true,
"singleQuote": true,
"arrowParens": "always",
"trailingComma": "es5"
}
Scripts
Add these scripts to your package.json:
{
"scripts": {
"lint": "npx eslint .",
"lint:fix": "npx eslint . --fix",
"format": "npx prettier --write .",
"format:check": "npx prettier --check .",
}
}Requirements
The following are required as dev dependencies for this package to be used.
- Node.js 20+
- ESLint 8.57.1+
- TypeScript 4.5.3+
- Prettier 3.6.2+
Plugins
This package uses the following eslint plugins/configs. Peers do NOT require these packages installed, but this package does rely on them.
- eslint-config-prettier
- eslint-import-resolver-typescript
- eslint-plugin-import
- eslint-plugin-react
- typescript-eslint
Development
Local Testing
You can use npm link to test changes if you are developing within this repo.
# In the config package (this one)
npm link
# In your project, i.e., the web app
npm link @alborz-taiv/taiv-eslint-configPublishing Updates
Do When you are ready to make changes, do a version bump and publish it. Then update any projects that use this package.
npm version patch # or minor/major
npm publish