@chris.araneo/eslint-config
v0.0.121
Published
ESLint shareable configuration
Maintainers
Readme
Installation
npm install --save-dev @chris.araneo/eslint-configQuick Start
Create an eslint.config.mjs file in your project root:
import { configBuilder } from '@chris.araneo/eslint-config';
export default configBuilder()
.addTypeScriptConfig({
sources: ['src/**/*.ts'],
})
.addIgnored({
ignored: ['dist/**', 'node_modules/**'],
})
.build();Included Plugins
This configuration includes the following ESLint plugins:
typescript-eslint: TypeScript-specific linting rulesangular-eslint: Angular-specific linting rules@nx/eslint-plugin: Nx workspace linting ruleseslint-plugin-jsonc: JSON and JSONC lintingeslint-plugin-perfectionist: sorting and organizing imports, objects, etc.eslint-plugin-simple-import-sort: import sortingeslint-plugin-unicorn: various awesome ESLint rules
Usage
TypeScript Configuration
Add TypeScript linting for your source files:
configBuilder()
.addTypeScriptConfig({
sources: ['src/**/*.ts'],
tsconfigRootDir: import.meta.dirname,
shouldResolveAppRootDir: false,
})
.build();sources(optional) - array of glob patterns for TypeScript files (default:[])tsconfigRootDir(optional) - root directory for TypeScript configurationshouldResolveAppRootDir(optional) - whether to resolve the app root directory (default:false)
TypeScript Tests Configuration
Add specific linting rules for test files:
configBuilder()
.addTypeScriptTestsConfig({
sources: ['**/*.spec.ts'],
tsconfigRootDir: import.meta.dirname,
})
.build();sources(optional) - array of glob patterns for test files (default:[])tsconfigRootDir(optional) - root directory for TypeScript configuration
Angular Configuration
Add Angular-specific linting rules:
configBuilder()
.addAngularConfig({
prefix: 'app',
sources: ['src/**/*.ts'],
tests: ['**/*.spec.ts'],
templates: ['**/*.html'],
jsons: ['**/*.json'],
ignored: ['**/generated/**'],
})
.build();prefix(optional) - Angular component selector prefix (default:'app')sources(optional) - array of glob patterns for Angular TypeScript files (default:[])tests(optional) - array of glob patterns for Angular test files (default:[])templates(optional) - array of glob patterns for Angular HTML templates (default:[])jsons(optional) - array of glob patterns for JSON files (default:[])ignored(optional) - array of glob patterns for files to ignore (default:[])
JSON Configuration
Add linting for JSON files:
configBuilder()
.addJsonConfig({
jsons: ['**/*.json'],
})
.build();jsons(optional) - array of glob patterns for JSON files (default:[])
Nx Configuration
Add Nx-specific linting rules for monorepos:
configBuilder()
.addNxConfig({
sources: ['apps/**/*', 'libs/**/*'],
})
.build();sources(optional) - array of glob patterns for Nx workspace files (default:[])rulesConfig(optional) - object to configure individual Nx rule behaviour (e.g.dependencyChecks,enforceModuleBoundaries,nxPluginChecks)
Ignored Files
Specify files and directories to ignore:
configBuilder()
.addIgnored({
ignored: ['dist/**', 'coverage/**', 'node_modules/**'],
})
.build();ignored(optional) - array of glob patterns for files to ignore (default:[])
API Reference
configBuilder()
Creates a new instance of the ESLintConfigBuilder.
ESLintConfigBuilder
Methods
addTypeScriptConfig(options): add TypeScript configurationaddTypeScriptTestsConfig(options): add TypeScript test configurationaddAngularConfig(options): add Angular configurationaddJsonConfig(options): add JSON configurationaddNxConfig(options): add Nx configurationaddIgnored(options): add ignored files configurationbuild(): build and return the final ESLint configurationreset(): reset the builder to its initial state
All add* methods return this for method chaining.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Krzysztof Pająk (Chris Araneo) - [email protected]
