Skip to main content

generate-middleware

Generate a new middleware function.

npx balda generate-middleware auth -p src/middlewares

Generated file: src/middlewares/auth.ts

Flags

  • -p, --path <string>: Target directory (default src/middlewares)

Generated Code

import { defineMiddleware } from "balda";
import type { TypedMiddleware } from "balda";

// Define the properties this middleware adds to the request
type AuthExtension = {
// example: userId: number;
};

export const Auth: TypedMiddleware<AuthExtension> =
defineMiddleware<AuthExtension>(async (req, res, next) => {
// Add your middleware logic here
return next();
});

The scaffold uses TypedMiddleware and defineMiddleware so that any properties your middleware adds to the request are automatically inferred in route handlers. See Typed Middleware for details.

Usage

import { router } from "balda";
import { Auth } from "./middlewares/auth";

// Imperative route — middleware extensions are inferred inline
router.get("/protected", { middlewares: [Auth] }, (req, res) => {
// req now has the properties defined in AuthExtension
res.json({ ok: true });
});