UNPKG

@gati-framework/runtime

Version:

Gati runtime execution engine for running handler-based applications

79 lines 2.47 kB
/** * @module runtime/middleware * @description Middleware pipeline management for Gati framework */ import type { Middleware, ErrorMiddleware, MiddlewareEntry, MiddlewareOptions } from './types/middleware.js'; import type { Request, Response, GlobalContext, LocalContext } from './types/index.js'; export type { Middleware, ErrorMiddleware } from './types/middleware.js'; /** * Middleware manager for organizing and executing middleware chain */ export declare class MiddlewareManager { private middlewares; private errorMiddlewares; /** * Register a middleware function * * @param middleware - Middleware function to register * @param options - Middleware configuration options */ use(middleware: Middleware, options?: MiddlewareOptions): void; /** * Register an error handling middleware * * @param middleware - Error middleware function */ useError(middleware: ErrorMiddleware): void; /** * Execute middleware chain for a request * * @param req - HTTP request * @param res - HTTP response * @param gctx - Global context * @param lctx - Local context * @param handler - Final handler to execute after middleware */ execute(req: Request, res: Response, gctx: GlobalContext, lctx: LocalContext, handler: () => Promise<void> | void): Promise<void>; /** * Handle errors through error middleware chain */ private handleError; /** * Get middlewares applicable to the current request */ private getApplicableMiddlewares; /** * Match request path against middleware path pattern * Supports: * - Exact match: '/api/users' * - Wildcard: '/api/*' matches '/api/anything' * - Parameters: '/api/:version/users' matches '/api/v1/users' */ private matchPath; /** * Convert path pattern to regex * Supports :param syntax and wildcards */ private patternToRegex; /** * Sort middlewares by priority (highest first) */ private sortMiddlewares; /** * Get all registered middlewares */ getMiddlewares(): MiddlewareEntry[]; /** * Clear all middlewares */ clear(): void; /** * Get number of registered middlewares */ size(): number; } /** * Create a new middleware manager instance */ export declare function createMiddlewareManager(): MiddlewareManager; //# sourceMappingURL=middleware.d.ts.map