ESLint Rules for NestJS Route Management

Ensure proper route ordering and prevent duplicates in your NestJS controllers.

Features

Route Order

Ensures static routes are placed before parameterized routes to prevent unexpected routing bugs.

No Duplicates

Prevents duplicate route definitions within the same controller to avoid routing conflicts.

Playground

Try the ESLint rules with your NestJS controller code:

Installation

Install via npm:

npm install --save-dev eslint-plugin-nestjs-route

ESLint Configuration:

// eslint.config.js (ESLint v9+)
const nestjsRoute = require("eslint-plugin-nestjs-route");

module.exports = [
  {
    files: ["**/*.ts"],
    plugins: {
      "nestjs-route": nestjsRoute,
    },
    rules: {
      "nestjs-route/order": "error",
      "nestjs-route/no-duplicates": "error",
    },
  },
];

Rules

nestjs-route/order

Ensures static routes are placed before parameterized routes in NestJS controllers.

✅ Correct:
@Get('me')
@Get(':id')
❌ Incorrect:
@Get(':id')
@Get('me') // Will be auto-fixed

nestjs-route/no-duplicates

Prevents duplicate route definitions within the same controller.

✅ Correct:
@Get('users')
@Post('users') // Different method
❌ Incorrect:
@Get('users')
@Get('users') // Duplicate route