[![code style: prettier][code-style]][prettier]

# Sharable `eslint` configuration

eslint:

> ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code.

- [Github][esl-github]
- [NPM Package][esl-npmjs]
- [Package Documentation][esl-docs]

## Usage

Meant for usage in conjunction with prettier, eslint & husky.

For additional information, see docs for

- [`@jeffsays/prettier`][jeffsays/prettier]

### Installation

<details><summary>npm</summary>

```shell
npm install --save-dev @jeffsays/lint-staged @jeffsays/prettier eslint lint-staged prettier
```

</details>

<details><summary>pnpm</summary>

```shell
pnpm add --save-dev @jeffsays/lint-staged @jeffsays/prettier eslint lint-staged prettier
```

</details>

<details><summary>yarn</summary>

```shell
yarn add --dev @jeffsays/lint-staged @jeffsays/prettier eslint lint-staged prettier
```

</details>

### Configuration

`lint-staged.config.mjs`:

<details open><summary>Basic configuration</summary>

```js
/**
 * @file  - Shared configuration for eslint.
 * @ref  -  https://www.npmjs.com/package/eslint
 * @ref  -  https://github.com/eslint/eslint
 * @packageDocumentation  -  https://eslint.org/docs/latest/
 */

import { defineConfig } from "eslint/config";
import baseConfig from "@jeffsays/eslint";

/**
 * @type  {import("eslint").Config}
 */
export default defineConfig([baseConfig]);
```

</details>

<details open><summary>Overrides or additional settings may be added</summary>

```js
/**
 * @file  - Shared configuration for eslint.
 * @author  -  Jeff Beck.
 * @ref  -  https://www.npmjs.com/package/eslint
 * @ref  -  https://github.com/eslint/eslint
 * @packageDocumentation  -  https://eslint.org/docs/latest/
 */

import { defineConfig } from "eslint/config";
import baseConfig from "@jeffsays/eslint";

/**
 * @type  {import("eslint").Config}
 */
export default defineConfig([
  baseConfig,
  {
    files: ["**/*.y?(a)ml"],
    rules: {
      "some-rule": off,
    },
  },
]);
```

</details>

[code-style]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
[prettier]: https://github.com/prettier/prettier
[jeffsays/prettier]: https://github.com/jeffsays/prettier
[esl-github]: https://github.com/eslint/eslint/
[esl-npmjs]: https://www.npmjs.com/package/eslint/
[esl-docs]: https://eslint.org/docs/latest/
