0.6.0 โ€ข Published 4 days ago

@code-pushup/eslint-config v0.6.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 days ago

@code-pushup/eslint-config

npm License: MIT

Recommended ESLint presets by Code PushUp.

โš™๏ธ Configs

Configurations are available for different tech stacks.

StackConfigDescription
javascript@code-pushupDefault config, suitable for any JavaScript/TypeScript project.
typescript@code-pushup/eslint-config/typescriptConfig for strict TypeScript projects.
nodejs@code-pushup/eslint-config/nodeConfig for Node.js projects.
angular@code-pushup/eslint-config/angularConfig for Angular projects.
ngrx@code-pushup/eslint-config/angular-ngrxConfig for Angular projects using NgRx library.
graphql@code-pushup/eslint-config/graphqlConfig for GraphQL servers implemented in Node.js.
jest@code-pushup/eslint-config/jestConfig for projects using Jest for testing.
vitest@code-pushup/eslint-config/vitestConfig for projects using Vitest for testing.
cypress@code-pushup/eslint-config/cypressConfig for projects using Cypress for testing.
storybook@code-pushup/eslint-config/storybookConfig for projects using Storybook for UI components.

Some configs extend other configs, as illustrated below. So, for example, adding "extends": ["@code-pushup/eslint-config/angular"] implicitly includes @code-pushup/eslint-config/typescript and @code-pushup as well.

  graph BT;
    index("@code-pushup")
    typescript("@code-pushup/eslint-config/typescript")
    node("@code-pushup/eslint-config/node")
    angular("@code-pushup/eslint-config/angular")
    angular-ngrx("@code-pushup/eslint-config/angular-ngrx")
    graphql("@code-pushup/eslint-config/graphql")
    typescript --extends--> index
    node --extends--> index
    angular --extends--> typescript
    angular-ngrx --extends--> angular
    graphql --extends--> node

๐Ÿ—๏ธ Setup

To use the default config, follow these steps:

  1. You must first install all the required peer dependencies (if you haven't already):

    npm install -D eslint @typescript-eslint/{eslint-plugin,parser} eslint-plugin-{functional,import,promise,sonarjs,unicorn}
  2. Install @code-pushup/eslint-config with:

    npm install -D @code-pushup/eslint-config
  3. Add default config to extends section in your ESLint configuration file (usually called .eslintrc.json or .eslintrc.js):

    {
      "extends": ["@code-pushup"]
    }

Depending on your tech stack, you may wish to extend other configs as well (listed above). This will require installing additional peer dependencies. For more details, refer to setup docs for the configs you're interested in using.

๐Ÿ“ฆ Peer dependencies

All peer dependencies used by @code-pushup/eslint-config are listed below, along with their supported versions. Only the default config's dependencies are required, others are optional.

NPM packageVersionRequired
eslinteslint^8.0.0โœ…
typescript@typescript-eslint/eslint-plugin^6.0.0 \|\| ^7.0.0โœ…
typescript@typescript-eslint/parser^6.0.0 \|\| ^7.0.0โœ…
lambdaeslint-plugin-functional^6.0.0โœ…
importeslint-plugin-import^2.25.0โœ…
importeslint-import-resolver-typescript^3.0.0
promiseeslint-plugin-promise^6.0.0โœ…
sonareslint-plugin-sonarjs>=0.22.0โœ…
unicorneslint-plugin-unicorn>=48.0.0โœ…
angular@angular-eslint/eslint-plugin^17.0.0
angular_component@angular-eslint/eslint-plugin-template^17.0.0
angular_component@angular-eslint/template-parser^17.0.0
graphql@graphql-eslint/eslint-plugin^3.0.0
ngrx@ngrx/eslint-plugin^17.0.0
cypresseslint-plugin-cypress^2.0.0
expiredeslint-plugin-deprecation^2.0.0
jesteslint-plugin-jest^27.0.0 \|\| ^28.0.0
nodejseslint-plugin-n^16.0.0
rxjseslint-plugin-rxjs^5.0.0
storybookeslint-plugin-storybook^0.6.0
vitesteslint-plugin-vitest^0.3.0

๐Ÿงช Test overrides

For non-production code, some rules are disabled (or downgraded from errors to warnings).

This applies to file paths matching any of the following globs:

  • *.spec.?(c|m)[jt]s?(x)
  • *.test.?(c|m)[jt]s?(x)
  • **/__tests__/**/*.?(c|m)[jt]s?(x)
  • **/__mocks__/**/*.?(c|m)[jt]s?(x)
  • *.cy.?(c|m)[jt]s?(x)
  • *.stories.?(c|m)[jt]s?(x)
  • *.e2e.?(c|m)[jt]s?(x)
  • *.mock.?(c|m)[jt]s?(x)
  • *.mocks.?(c|m)[jt]s?(x)
  • **/test/**/*.?(c|m)[jt]s?(x)
  • **/tests/**/*.?(c|m)[jt]s?(x)
  • **/mocks/**/*.?(c|m)[jt]s?(x)
  • **/testing-utils/**/*.?(c|m)[jt]s?(x)
  • **/test-utils/**/*.?(c|m)[jt]s?(x)
  • **/fixtures/**/*.?(c|m)[jt]s?(x)
  • *.config.?(c|m)[jt]s
  • .prettierrc.?(c|m)[jt]s
  • codegen.?(c|m)[jt]s
  • test-setup.?(c|m)[jt]s

๐Ÿซด Contributing

Node.js installation is a prerequisite (LTS version). Install dependencies with NPM:

npm install

To execute tests:

npm test

To generate documentation:

npm run docs
0.6.0

4 days ago

0.5.0

3 months ago

0.3.2

4 months ago

0.4.0

4 months ago

0.3.1

4 months ago

0.3.0

4 months ago

0.2.1

4 months ago

0.2.0

4 months ago

0.1.3

5 months ago

0.1.2

6 months ago

0.1.1

6 months ago

0.1.0

6 months ago