Skip to content

NijiDigital/eslint-config-niji-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESLint config rules for TypeScript by Niji

This module provides an ESLint configuration ready to use in any TypeScript project, with enforced rules.

Installation

with npm:

npm i -D eslint-config-niji-ts

with yarn:

yarn add -D eslint-config-niji-ts

Getting started

In your .eslintrc.json, simply extend the Niji ESLint config:

{
  "$schema": "https://json.schemastore.org/eslintrc.json",
  "env": {
    "es2021": true,
    "node": true
  },
  "extends": ["niji-ts"],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "createDefaultProgram": true,
    "ecmaVersion": 12,
    "project": ["./tsconfig.eslint.json"],
    "sourceType": "module",
    "tsconfigRootDir": "."
  },
  "root": true
}

Enabled rules

All ESLint rules are based on the following dependencies:

  • eslint:recommended
  • plugin:@typescript-eslint/eslint-recommended
  • plugin:@typescript-eslint/recommended-requiring-type-checking
  • plugin:@typescript-eslint/recommended-type-checked
  • plugin:@typescript-eslint/stylistic-type-checked
  • plugin:prettier/recommended
  • plugin:sonarjs/recommended

List of the enabled custom rules:

  • @typescript-eslint/adjacent-overload-signatures
  • @typescript-eslint/array-type
  • @typescript-eslint/ban-tslint-comment
  • @typescript-eslint/class-literal-property-style
  • @typescript-eslint/consistent-generic-constructors
  • @typescript-eslint/consistent-indexed-object-style
  • @typescript-eslint/consistent-type-assertions
  • @typescript-eslint/consistent-type-definitions
  • @typescript-eslint/consistent-type-exports
  • @typescript-eslint/consistent-type-imports
  • @typescript-eslint/explicit-function-return-type
  • @typescript-eslint/explicit-module-boundary-types
  • @typescript-eslint/member-ordering
  • @typescript-eslint/method-signature-style
  • @typescript-eslint/naming-convention
  • @typescript-eslint/no-confusing-non-null-assertion
  • @typescript-eslint/no-confusing-void-expression
  • @typescript-eslint/no-duplicate-enum-values
  • @typescript-eslint/no-dynamic-delete
  • @typescript-eslint/no-empty-interface
  • @typescript-eslint/no-extraneous-class
  • @typescript-eslint/no-import-type-side-effects
  • @typescript-eslint/no-inferrable-types
  • @typescript-eslint/no-invalid-void-type
  • @typescript-eslint/no-meaningless-void-operator
  • @typescript-eslint/no-mixed-enums
  • @typescript-eslint/no-non-null-asserted-nullish-coalescing
  • @typescript-eslint/no-require-imports
  • @typescript-eslint/no-unnecessary-boolean-literal-compare
  • @typescript-eslint/no-unnecessary-condition
  • @typescript-eslint/no-unnecessary-qualifier
  • @typescript-eslint/no-unnecessary-type-arguments
  • @typescript-eslint/no-unsafe-call
  • @typescript-eslint/no-useless-empty-export
  • @typescript-eslint/non-nullable-type-assertion-style
  • @typescript-eslint/parameter-properties
  • @typescript-eslint/prefer-enum-initializers
  • @typescript-eslint/prefer-for-of
  • @typescript-eslint/prefer-function-type
  • @typescript-eslint/prefer-includes
  • @typescript-eslint/prefer-literal-enum-member
  • @typescript-eslint/prefer-namespace-keyword
  • @typescript-eslint/prefer-nullish-coalescing
  • @typescript-eslint/prefer-optional-chain
  • @typescript-eslint/prefer-readonly
  • @typescript-eslint/prefer-reduce-type-parameter
  • @typescript-eslint/prefer-regexp-exec
  • @typescript-eslint/prefer-return-this-type
  • @typescript-eslint/prefer-string-starts-ends-with
  • @typescript-eslint/prefer-ts-expect-error
  • @typescript-eslint/require-array-sort-compare
  • @typescript-eslint/sort-type-constituents
  • @typescript-eslint/switch-exhaustiveness-check
  • @typescript-eslint/typedef
  • @typescript-eslint/unified-signatures
  • linebreak-style
  • no-template-curly-in-string
  • prefer-template
  • require-await
  • simple-import-sort/exports
  • simple-import-sort/imports
  • sonarjs/elseif-without-else
  • sonarjs/no-inverted-boolean-check
  • sort-keys-shorthand/sort-keys-shorthand

All these rules are proposed to reach a maximum level of quality. Feel free to customize your configuration to match your needs.

Enjoy!

About

Enforced ESLint rules for TypeScript by Niji

Resources

License

Stars

Watchers

Forks

Packages

No packages published