@kiforks/eslint-config v1.3.1
@kiforks/eslint-config
Created by Kifor Kostiantyn
This is the standard configuration file for ESLint from Kifor Kostiantyn.
Use it as is or as a basis for your own configuration.
Installation
You first need to install your published configuration, for example:
npm install --save-dev eslint @kiforks/eslint-configyarn add --dev eslint @kiforks/eslint-configpnpm add --save-dev eslint @kiforks/eslint-configbun add --dev eslint @kiforks/eslint-configBasic Configuration
In the root of the project, create a eslint.config.js file and add @kiforks/eslint-config to the extends field.
eslint.config.js
import kiforAngularTemplate from '@kiforks/eslint-config/angular-template.js';
import kiforAngularTypescript from '@kiforks/eslint-config/angular-typescript.js';
import kiforJavascript from '@kiforks/eslint-config/javascript.js';
import kiforJasmine from '@kiforks/eslint-config/tests-jasmine.js';
import kiforJest from '@kiforks/eslint-config/tests-jest.js';
import kiforTests from '@kiforks/eslint-config/tests.js';
import kiforTypescript from '@kiforks/eslint-config/typescript.js';
/** @type { import("eslint").Linter.Config[] } */
export default [
...kiforTypescript.map(config => ({
...config,
languageOptions: {
...config.languageOptions,
parserOptions: {
project: ['./tsconfig.base.json'],
tsconfigRootDir: import.meta.dirname,
},
},
})),
...kiforJavascript,
...kiforAngularTemplate,
...kiforAngularTypescript,
...kiforTests,
...kiforJasmine,
...kiforJest,
];Configure Extension
You can override existing rules or add new ones by using the rules field in your ESLint configuration.
eslint.config.js
export default [
...kiforTypescript,
{
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'jest/prefer-expect-assertions': 'off',
},
},
];Disable Recommend Configuration
The disable-recommend configuration is designed to disable certain ESLint rules that enforce stricter coding practices, giving developers more flexibility when needed. This can be useful in scenarios where specific recommendations are not suitable for your project's requirements.
Purpose
- Flexibility: Allows you to bypass overly strict linting rules.
- Customization: Focus on rules that align with your project's coding style.
- Ease of Development: Reduces friction when rapid prototyping or working with legacy code.
Usage
In your eslint.config.js, extend the disable-recommend configuration:
import kiforDisableRecommend from '@kiforks/eslint-config/disable-recommend.js';
/** @type { import("eslint").Linter.Config[] } */
export default [...kiforDisableRecommend];Feature-Sliced Design Configuration
The feature-sliced-design.js configuration enforces architectural boundaries based on the Feature-Sliced Design methodology. It restricts cross-layer imports to encourage modularity, scalability, and maintainability in frontend applications.
Key Features
- Enforces layer isolation: shared, entities, features, widgets, pages, processes, app
- Restricts disallowed import paths across layers
- Works with
.ts,.tsx,.js,.jsxfiles
Usage
import kiforFeatureSliced from '@kiforks/eslint-config/feature-sliced-design.js';
export default [...kiforFeatureSliced];Usage in VSCode
- Install ESLint and the configuration.
- Open VSCode.
- Install the ESLint plugin.
- Use it.
Scripts
Add these scripts to your package.json for easier linting and formatting:
"scripts": {
"lint": "npx eslint '**/*.{ts,html,js}' --quiet",
"lint:fix": "npx eslint '**/*.{ts,html,js}' --quiet --fix"
}