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

https://github.com/dsi-hug/eslint-config

✨ ESLint shareable configuration with great defaults
https://github.com/dsi-hug/eslint-config

angular code cypress es6 eslint eslintconfig javascript jslint lint linter quality rxjs style typescript

Last synced: about 1 year ago
JSON representation

✨ ESLint shareable configuration with great defaults

Awesome Lists containing this project

README

          


@hug/eslint-config





hug-logo




ESLint shareable configuration with great defaults





npm version


npm donwloads


license GPLv3



build status


PRs welcome


## Installation

```sh
npm install @hug/eslint-config --save-dev
```

```sh
yarn add eslint@8.x @hug/eslint-config --dev
```

Prior to version 20.2.0

>

>
> Create a `tsconfig.eslint.json` file at the root of your project
>
> ```jsonc
> {
> "extends": "./tsconfig.json",
> "compilerOptions": {
> "types": [
> "node",
> "jasmine"
> //
> // In case you are using WebdriverIO
> // "@wdio/globals/types"
> //
> // In case you are using Cypress
> // "cypress"
> //
> // Any other types that are required by your tests
> // ...
> ]
> },
> "include": ["src/**/*.ts", "e2e/**/*.ts"]
> }
> ```

For Angular >= 10.x <= 11.x

>

>
> ```sh
> npm install @hug/eslint-config@2.x --save-dev
> ```
>
> ```sh
> yarn add eslint@7.x @hug/eslint-config@2.x --dev
> ```

Migrating from tslint

>

>
> 1. Remove `tslint` and `codelyzer` from your dependencies
> 2. Remove any `tslint.json` configuration files
> 3. Add `eslint` as a dev dependency
> 4. Have a look at our [Angular project example][ng-example] and modify all your `tsconfig` files accordingly


## Requirements

> As of now this configuration is intented to work with **Angular projects** only.

> Projects running under `Angular 10.x` can safely ignore `@angular-eslint` warnings during installation.

- an **Angular >= 10.x** project

## Usage

1. Create an `.eslintrc.json` file at the root of your project

```jsonc
{
"root": true,
"extends": [
/**
* Possible values: 'recommended (strict) | moderate (less stricter)'
*/
"@hug/eslint-config/recommended"
]
}
```

2. Modify your existing `angular.json`

```json
"architect": {
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"**/*.js",
"**/*.json",
"**/*.ts",
"**/*.html"
]
}
}
}
```

3. Run `ng lint`


_You can also skip steps `2` and `3` and simply run:_

```
eslint *.{js,json,ts,html}
```

## Rules

This configuration exports a recommended set of rules that enforces good practices.

They may or may not served you well as they are mainly designed to be used by the [HUG organization's team][dsi-hug].

The rules applies as follow:

| Files | Rules |
| :----------- | :---------------------------------------------------------------------------------------------- |
| \*_/_.ts | `es6`, `typescript`, `angular`, `rxjs`, `no-secrets` |
| \*_/_.js | `es6`, `no-secrets` |
| \*_/_.mjs | `es6`, `no-secrets` |
| \*_/_.html | `angular-template` |
| \*_/_.json | `no-secrets` |
| e2e/\*_/_.ts | `es6`, `typescript`, `no-secrets`, [`cypress`, `chai-friendly` - in case you are using Cypress] |

## Development

See the [developer docs][developer].

## Contributing

#### > Want to Help?

Want to file a bug, contribute some code or improve documentation? Excellent!

But please read up first on the guidelines for [contributing][contributing], and learn about submission process, coding rules and more.

#### > Code of Conduct

Please read and follow the [Code of Conduct][codeofconduct], and help us keep this project open and inclusive.

## Credits

Copyright (C) 2021 [HUG - Hôpitaux Universitaires Genève][dsi-hug]

[![love@hug](https://img.shields.io/badge/@hug-%E2%9D%A4%EF%B8%8Flove-magenta)][dsi-hug]

[angular-eslint]: https://github.com/angular-eslint/angular-eslint
[ng-example]: https://github.com/dsi-hug/eslint-config/blob/main/examples/angular
[cypress]: https://www.cypress.io/
[developer]: https://github.com/dsi-hug/eslint-config/blob/main/DEVELOPER.md
[contributing]: https://github.com/dsi-hug/eslint-config/blob/main/CONTRIBUTING.md
[codeofconduct]: https://github.com/dsi-hug/eslint-config/blob/main/CODE_OF_CONDUCT.md
[dsi-hug]: https://github.com/dsi-hug