1.0.7 • Published 2 years ago
@spyrosoft/eslint-config-spyro v1.0.7
Spyrosoft ESlint Config
A set of rules selected by Spyrosoft's engineers as a company standard for frontend projects.
Table of Contents
Installation
In order to use this set of rules in your project, install this package as a dev dependency:
npm i --save-dev @spyrosoft/eslint-config-spyroThen, set it in your .eslintrc.json file:
{
  "extends": ["@spyrosoft/eslint-config-spyro"]
}And that's all, your ESlint rules are now set and ready to go.
List of rules
General rules
Tests rules
Jest recommended, extended by:
| Rule | Description | 
|---|---|
| jest/consistent-test-it | forces all top-level tests to use testand all tests nested withindescribeto useit | 
| jest/max-nested-describe | enforces a maximum depth to nested describe()calls to3 | 
| jest/no-alias-methods | disallow alias methods | 
| jest/no-duplicate-hooks | disallow duplicate setup and teardown hooks | 
| jest/no-hooks | allow only afterAllandbeforeEachhooks | 
| jest/no-if | disallow conditional logic | 
| jest/no-test-return-statement | disallow explicitly returning from tests | 
| jest/require-top-level-describe | require test cases and hooks to be inside a describeblock | 
| jest/expect-expect | ensure that there is at least one expectcall made in a test | 
Naming convention
- interfaces - PascalCase, starting withI
- type aliases - PascalCase, starting withT
- variables - CamelCase,PascalCaseorUPPER_CASE, consecutive capitals are not allowed
- enums - UPPER_CASE
No trailing or leading underscores allowed in any of the above.
File naming convention
All file names should be in kebab-case.
Member declaration order
Access modifier order
- public
- protected
- private
Member type order
- static field
- instance field
- static method
- constructor
- instance method
Additonal rules
| Rule | Description | 
|---|---|
| @typescript-eslint/member-delimiter-style | each member should be delimited with a semicolon | 
| no-else-return | disallow elseblocks afterreturnstatements inifstatements | 
| unicorn/new-for-builtins | enforce the use of new for all builtins, except String,Number,Boolean,SymbolandBigInt | 
| unicorn/prefer-switch | prefer switch over multiple else-if | 
| react/jsx-no-useless-fragment | disallow unnecessary fragments | 
| react-hooks/exhaustive-deps | validate dependencies of custom Hooks |