@vortiquo/eslint-config
v2.1.0
Published
Modern ESLint v9 flat configurations with TypeScript, React, Next.js, and Node.js support
Maintainers
Readme
@vortiquo/eslint-config
Modern ESLint v9 flat configurations with TypeScript, React, and Node.js support.
Features
- ⚡ ESLint v9 - Modern flat config format
- 🔒 Strict TypeScript - Uses
strictTypeCheckedpreset - 📦 Ready-to-use presets - Next.js, React, Node.js, NestJS
- 🎨 Prettier compatible - No formatting conflicts
- 📝 Import sorting - Auto-fixable with
simple-import-sort - 🏎️ Turbo support - Monorepo cache awareness
Installation
npm install -D @vortiquo/eslint-config eslint typescript
# or
pnpm add -D @vortiquo/eslint-config eslint typescript
# or
yarn add -D @vortiquo/eslint-config eslint typescriptAvailable Configs
| Config | Use Case |
| ------------------ | ----------------------------------------- |
| nextjs | Next.js applications |
| server | Backend APIs (Fastify, Express, Hono) |
| nestjs | NestJS applications |
| react | React applications |
| react-library | React/UI component libraries (TypeScript) |
| react-library-js | React/UI component libraries (JavaScript) |
| node-library | Shared Node.js packages (TypeScript) |
| node-library-js | Shared Node.js packages (JavaScript) |
Usage
Create an eslint.config.js in your project:
Next.js
import { nextjs } from '@vortiquo/eslint-config/nextjs';
export default [
...nextjs,
{
languageOptions: {
parserOptions: {
project: './tsconfig.json',
},
},
},
];Backend API (Fastify/Express/Hono)
import { server } from '@vortiquo/eslint-config/server';
export default [
...server,
{
languageOptions: {
parserOptions: {
project: './tsconfig.json',
},
},
},
];NestJS
import { nestjs } from '@vortiquo/eslint-config/nestjs';
export default [
...nestjs,
{
languageOptions: {
parserOptions: {
project: './tsconfig.json',
},
},
},
];React Component Library
import { reactLibrary } from '@vortiquo/eslint-config/react-library';
export default [
...reactLibrary,
{
languageOptions: {
parserOptions: {
project: './tsconfig.json',
},
},
},
];Node.js Library
import { nodeLibrary } from '@vortiquo/eslint-config/node-library';
export default [
...nodeLibrary,
{
languageOptions: {
parserOptions: {
project: './tsconfig.json',
},
},
},
];JavaScript Projects (No TypeScript)
For projects without TypeScript, use the -js variants:
// Node.js library (JavaScript)
import { nodeLibraryJs } from '@vortiquo/eslint-config/node-library-js';
export default [...nodeLibraryJs];// React library (JavaScript)
import { reactLibraryJs } from '@vortiquo/eslint-config/react-library-js';
export default [...reactLibraryJs];Extending Configs
All configs are arrays that can be spread and extended:
import { nextjs } from '@vortiquo/eslint-config/nextjs';
export default [
...nextjs,
{
rules: {
'no-console': 'off',
},
},
{
ignores: ['generated/**'],
},
];What's Included
Base Rules
- Prettier integration (formatting handled by Prettier)
- Turbo plugin (monorepo cache awareness)
- Import sorting (auto-fixable)
- Best practices (curly, eqeqeq, prefer-const)
TypeScript Rules
- Strict type checking (
strictTypeChecked) - Consistent type imports/exports
- No explicit
any - Promise handling (
no-floating-promises)
React Rules
- React recommended + JSX runtime
- React Hooks rules
- Self-closing components
- Prop sorting
Next.js Rules
- Core Web Vitals
- Image optimization
- App Router support
Config Hierarchy
base (JS rules, Prettier, Turbo)
├── node-library-js (JS Node.js packages)
├── react-library-js (JS React libraries)
└── base-typescript (TS strict rules)
├── react (React + Hooks)
│ ├── react-library (stricter)
│ └── nextjs (Next.js specific)
├── server (Node.js APIs)
│ └── nestjs (decorators)
└── node-library (Node.js packages)License
MIT © Vortiquo
