Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hodfords-solutions/nestjs-eslint-config

Eslint default configuration for Nestjs project. It will help you to maintain the code quality of your project.
https://github.com/hodfords-solutions/nestjs-eslint-config

eslint nestjs typescript

Last synced: 3 days ago
JSON representation

Eslint default configuration for Nestjs project. It will help you to maintain the code quality of your project.

Awesome Lists containing this project

README

        


Nest Logo

# ESLINT DEFAULT CONFIGURATION
Eslint default configuration for Nestjs project. It will help you to maintain the code quality of your project.

## Installation 🤖
To begin using it, we first install the required dependencies.
```
npm install @hodfords/nestjs-eslint-config
```

## Configuration 🚀
To activate eslint, create a `eslint.config.js` file in the root of your project and add the following configuration:
```javascript
module.exports = require('@hodfords/nestjs-eslint-config');
```

## Usage 🚀
Run the following command to lint your project:
```
npx eslint
```

## Eslint Config Details
This configuration extends the `@hodfords/eslint-config` package. It includes the following plugins:
- `@typescript-eslint/eslint-plugin`
- `@typescript-eslint/parser`
- `eslint-plugin-prettier/recommended`

Custom rules are also included in this configuration.

### Prettier Config
```javascript
{
useTabs: false,
tabWidth: 4,
printWidth: 120,
singleQuote: true,
trailingComma: 'none'
}
```

### Typescript Config

#### Naming Conventions
- `@typescript-eslint/naming-convention`
- `enumMember`: `UPPER_CASE`
- `objectLiteralProperty`: `['camelCase', 'PascalCase', 'UPPER_CASE']`
- `['class', 'interface', 'enum']`: `PascalCase`
- `variable`: `['PascalCase', 'camelCase', 'UPPER_CASE']`
- `function`: `['PascalCase', 'camelCase']`
- `'parameter','variable','function', 'classProperty','typeProperty','parameterProperty','classMethod','objectLiteralMethod','typeMethod'`: `'camelCase'`

#### Typescript Custom Rules
```
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-inferrable-types': 'off',
'@typescript-eslint/no-unused-vars': ['error', { args: 'none' }]
```

### Js Rules
- `max-line-per-function`: `50`
- `max-lines`: `400`
- `prefer-const`
- `lines-between-class-members`
- `indent`: `off`

## License
This project is licensed under the MIT License