# @next-friday/eslint-config-friday

> Strict, type-aware ESLint Flat Config for JavaScript, TypeScript, React, Next.js, NestJS, and Node.js.

Latest version **1.0.0** (published 2026-10-04) · MIT license · 0 weekly downloads

## Install

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

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2026-10-04 |
| First published | 2026-10-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=24.15.0 |
| Dependencies | 29 |
| Unpacked size | 104.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Next Friday |
| Maintainers | joetakara |
| Keywords | eslint-config, flat-config, react, nextjs, nestjs, strict, typescript-eslint, stylistic, type-aware, next-friday |

## Links

- npm: https://www.npmjs.com/package/@next-friday/eslint-config-friday
- Repository: https://github.com/next-friday/friday-code-standards
- Homepage: https://github.com/next-friday/friday-code-standards/tree/main/packages/eslint-config-friday
- Issues: https://github.com/next-friday/friday-code-standards/issues
- npm.io page: https://npm.io/package/@next-friday/eslint-config-friday

## Dependencies (29)

- [globals](https://npm.io/package/globals.md) 17.13.0
- [class-validator](https://npm.io/package/class-validator.md) 0.15.1
- [eslint-plugin-n](https://npm.io/package/eslint-plugin-n.md) 18.4.0
- [@eslint/markdown](https://npm.io/package/@eslint/markdown.md) 8.0.3
- [eslint-plugin-yml](https://npm.io/package/eslint-plugin-yml.md) 3.8.1
- [typescript-eslint](https://npm.io/package/typescript-eslint.md) 8.71.0
- [eslint-plugin-toml](https://npm.io/package/eslint-plugin-toml.md) 1.5.0
- [eslint-plugin-antfu](https://npm.io/package/eslint-plugin-antfu.md) 3.2.3
- [eslint-plugin-jsdoc](https://npm.io/package/eslint-plugin-jsdoc.md) 65.0.1
- [eslint-plugin-jsonc](https://npm.io/package/eslint-plugin-jsonc.md) 3.4.2
- [jsonc-eslint-parser](https://npm.io/package/jsonc-eslint-parser.md) 3.3.0
- [eslint-plugin-regexp](https://npm.io/package/eslint-plugin-regexp.md) 3.3.1
- [@vitest/eslint-plugin](https://npm.io/package/@vitest/eslint-plugin.md) 1.6.27
- [eslint-plugin-promise](https://npm.io/package/eslint-plugin-promise.md) 7.3.0
- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) 4.2.2
- [eslint-plugin-unicorn](https://npm.io/package/eslint-plugin-unicorn.md) 76.0.0
- [eslint-plugin-import-x](https://npm.io/package/eslint-plugin-import-x.md) 4.17.1
- [@next/eslint-plugin-next](https://npm.io/package/@next/eslint-plugin-next.md) 16.3.8
- [@stylistic/eslint-plugin](https://npm.io/package/@stylistic/eslint-plugin.md) 5.10.0
- [eslint-plugin-jsx-a11y-x](https://npm.io/package/eslint-plugin-jsx-a11y-x.md) 0.2.0
- [@typescript-eslint/parser](https://npm.io/package/@typescript-eslint/parser.md) 8.71.0
- [eslint-plugin-react-hooks](https://npm.io/package/eslint-plugin-react-hooks.md) 7.1.1
- [eslint-plugin-package-json](https://npm.io/package/eslint-plugin-package-json.md) 1.10.1
- [@eslint-react/eslint-plugin](https://npm.io/package/@eslint-react/eslint-plugin.md) 5.23.3
- [eslint-plugin-perfectionist](https://npm.io/package/eslint-plugin-perfectionist.md) 5.12.1
- [@next-friday/eslint-plugin-friday](https://npm.io/package/@next-friday/eslint-plugin-friday.md) 1.0.0
- [eslint-import-resolver-typescript](https://npm.io/package/eslint-import-resolver-typescript.md) 4.4.5
- [@darraghor/eslint-plugin-nestjs-typed](https://npm.io/package/@darraghor/eslint-plugin-nestjs-typed.md) 7.5.6
- [@eslint-community/eslint-plugin-eslint-comments](https://npm.io/package/@eslint-community/eslint-plugin-eslint-comments.md) 4.8.1

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2026-10-04

## README

# @next-friday/eslint-config-friday

[![npm version](https://img.shields.io/npm/v/%40next-friday%2Feslint-config-friday.svg)](https://www.npmjs.com/package/@next-friday/eslint-config-friday) [![CI](https://github.com/next-friday/friday-code-standards/actions/workflows/ci.yml/badge.svg)](https://github.com/next-friday/friday-code-standards/actions/workflows/ci.yml) [![Codecov](https://codecov.io/gh/next-friday/friday-code-standards/branch/main/graph/badge.svg)](https://codecov.io/gh/next-friday/friday-code-standards/branch/main) [![License](https://img.shields.io/github/license/next-friday/friday-code-standards.svg)](../../LICENSE)

One strict Flat Config for JavaScript, TypeScript, React, Next.js, NestJS, Node.js, tests, and structured data—with framework context explicit instead of inferred.

- Strict and type-aware by default.
- Project context is opt-in and visible in configuration.
- One policy surface covers source code, tests, package manifests, and common data formats.

## Usage

```js
import friday from "@next-friday/eslint-config-friday";

export default friday();
```

Browser and Node globals are available by default.

### Framework contexts

| Option   | Default | Contract                                                       |
| :------- | :------ | :------------------------------------------------------------- |
| `react`  | `false` | Enable Next Friday React, JSX accessibility, and Hooks policy. |
| `nextjs` | `false` | Enable the bundled official Next.js Core Web Vitals policy.    |
| `nestjs` | `false` | Enable the bundled NestJS typed recommended policy.            |

```js
import friday from "@next-friday/eslint-config-friday";

export default friday({
  react: true,
  nextjs: true,
  nestjs: true,
});
```

Consumers do not install or compose `eslint-config-next`, `@next/eslint-plugin-next`, or `@darraghor/eslint-plugin-nestjs-typed` separately. This package bundles the framework plugins and mirrors their selected rule sets explicitly. With `nextjs: true`, Next.js file-convention entries also receive targeted compatibility for filename-based lint rules without weakening ordinary project files.

React and Next.js remain separate explicit capabilities, matching the Antfu-style option surface.

## Policy coverage

| Area                                    | Enabled by default |
| :-------------------------------------- | :----------------: |
| JavaScript and TypeScript correctness   |         ✅         |
| Type-aware TypeScript rules             |         ✅         |
| Node.js runtime rules                   |         ✅         |
| Imports and deterministic ordering      |         ✅         |
| Promise, RegExp, and code-quality rules |         ✅         |
| JSDoc and ESLint directive governance   |         ✅         |
| Vitest test files                       |         ✅         |
| JSON / JSONC / JSON5                    |         ✅         |
| YAML and TOML                           |         ✅         |
| Markdown                                |         ✅         |
| `package.json`                          |         ✅         |
| React / JSX accessibility / Hooks       |    with `react`    |
| Next.js Core Web Vitals                 |   with `nextjs`    |
| NestJS typed recommended                |   with `nestjs`    |
| Browser globals                         |         ✅         |

Targeted `eslint-disable` directives are allowed when narrow and described. Unused suppression directives are reported.

## Project-specific ignores

Use ESLint's `globalIgnores()` for generated, vendor, or project-owned paths:

```js
import {defineConfig, globalIgnores} from "eslint/config";
import friday from "@next-friday/eslint-config-friday";

export default defineConfig(globalIgnores(["dist/**", "coverage/**"]), friday());
```

## Formatting boundary

ESLint owns diagnostics, semantic fixes, code quality, and non-conflicting structural rules.

[`@next-friday/prettier-config-friday`](../prettier-config-friday) owns layout formatting such as indentation, quotes, wrapping, and semicolons.

## Compatibility

| Surface                   | Supported contract |
| :------------------------ | :----------------- |
| Node.js                   | `>=24.15.0`        |
| ESLint                    | `^10.4.0`          |
| TypeScript                | `>=4.8.4 <6.1.0`   |
| Module format             | ESM only           |
| ESLint configuration      | Flat Config        |
| `eslint.config.ts` loader | `jiti >=2.2.0`     |

## Troubleshooting

### TypeScript files are outside the project

Run ESLint from the project root and ensure the files are included by the controlling `tsconfig.json`.

### Generated files keep reporting diagnostics

Add project-owned generated paths with `globalIgnores()` rather than file-local suppression comments.

## License

[MIT](../../LICENSE) © Next Friday

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