# @madgex/eslint-config-madgex

> Madgex ESLint config - based on eslint-config-airbnb

Latest version **3.0.0** (published 2026-02-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install @madgex/eslint-config-madgex
pnpm add @madgex/eslint-config-madgex
yarn add @madgex/eslint-config-madgex
bun add @madgex/eslint-config-madgex
```

## Health

**Score 45/100 (D)** — status: stable.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2026-02-23 |
| First published | 2017-09-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=22.16 |
| Dependencies | 0 |
| Unpacked size | 7.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | James Wragg |
| Maintainers | jameswragg, sadi.uddin, richp, madgex-npm, mbainwiley, systems.team, celine.cozler, antoninoriesi, jackjohn86, rachel.godfrey, luis.sb.madgex, dbangamuwa, nabuckley, sjohnson-madgex, fernando.perez86, umar.mahmood, opeafolabi, acox-madgex, mvariamadgex, karantzas |

## Links

- npm: https://www.npmjs.com/package/@madgex/eslint-config-madgex
- npm.io page: https://npm.io/package/@madgex/eslint-config-madgex

## Recent versions

- 3.0.0 (latest) — 2026-02-23
- 2.4.0 — 2026-02-12
- 2.3.0 — 2024-05-08
- 2.2.0 — 2024-04-23
- 2.1.0 — 2024-04-19
- 2.0.0 — 2024-04-18
- 1.4.1 — 2021-02-19
- 1.3.1 — 2020-10-15
- 1.2.7 — 2020-10-15
- 1.2.5 — 2020-09-03
- 1.2.4 — 2020-05-15
- 1.2.3 — 2020-01-17
- 1.2.2 — 2020-01-17
- 1.2.1 — 2019-11-28
- 1.2.0 — 2019-04-03
- … 18 more at https://npm.io/package/@madgex/eslint-config-madgex/versions

## README

# eslint-config-madgex

[ESLint](https://eslint.org) rules related to Madgex projects.

## Install

```bash
npm install eslint@10 @madgex/eslint-config-madgex -save-dev
```

## VSCode extension

Use the official VSCode [ESLint Extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) v 3.0.21+

## Usage

> ⚠️ Recomended to use only 1 type of source file in your repo, either `commonjs` or `module` (esm). `eslint` & `eslint-plugin-n` (this config depends on) has difficulty supporting both at the same time in a monorepo.

`eslint-plugin-n` which is a part of our config, reads the package.json for node version, and what `type` of JS files you use (ESM or commonjs).

```json5
// package.json
{
  ...
  "type": "module", // "module" (ESM), or "commonjs" - you cant use both
  {
    "engines": {
      "node": ">=24"
    }
  },
  ...
}
```

`eslint-plugin-n` also recognises `.npmignore` files which will silence warnings of missing dependancies when they are installed as `devDependancies`.

### Node/Browser

```js
// eslint.config.js
import configMadgex from '@madgex/eslint-config-madgex';

export default [...configMadgex];
```

### Vue

config order matters.

```js
// eslint.config.js
import configMadgex from '@madgex/eslint-config-madgex';
import pluginVue from 'eslint-plugin-vue';
// pluginVue.configs['flat/recommended'] has prettier conflicts

export default [...configMadgex, ...pluginVue.configs['flat/essential']];
```

### Rules

Notes regarding specific rules enforced in this config:

- [`no-param-reassign`](https://eslint.org/docs/latest/rules/no-param-reassign) - Disallow reassigning function parameters, except for **`accu`** which is the accumulator in a `.reduce()` e.g.

  ```js
  Array.reduce((accu, key) => {
    accu[key] = getVal(key);

    return accu;
  }, {});
  ```

- [`no-unused-vars`](https://eslint.org/docs/latest/rules/no-unused-vars) - Disallow unused variables, except for `request` and `h` as found on hapi.js route handlers.

---
_Source: https://npm.io/package/@madgex/eslint-config-madgex · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
