/nestjs-eslint-config

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

Primary LanguageJavaScript

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:

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

{
    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