stratakit
Version:
stratakit - Meta-framework React puro con Auto Router automático, file-based routing, SEO automático y performance superior
79 lines (78 loc) • 2.2 kB
TypeScript
export interface MiddlewareContext {
path: string;
params: Record<string, string>;
query: Record<string, string>;
headers: Record<string, string>;
cookies: Record<string, string>;
user?: any;
isAuthenticated: boolean;
permissions: string[];
redirect?: string;
abort?: boolean;
data?: any;
}
export interface MiddlewareResult {
success: boolean;
redirect?: string;
abort?: boolean;
data?: any;
error?: string;
}
export type MiddlewareFunction = (context: MiddlewareContext, next: () => Promise<MiddlewareResult>) => Promise<MiddlewareResult>;
export declare class MiddlewareManager {
private middlewares;
/**
* Registrar middleware
*/
register(name: string, middleware: MiddlewareFunction): void;
/**
* Ejecutar middlewares en secuencia
*/
execute(middlewareNames: string[], context: MiddlewareContext): Promise<MiddlewareResult>;
/**
* Obtener middleware por nombre
*/
get(name: string): MiddlewareFunction | undefined;
/**
* Listar todos los middlewares
*/
list(): string[];
/**
* Eliminar middleware
*/
remove(name: string): boolean;
}
export declare const middlewareManager: MiddlewareManager;
/**
* Middleware de autenticación
*/
export declare const authMiddleware: MiddlewareFunction;
/**
* Middleware de autorización
*/
export declare const createPermissionMiddleware: (requiredPermissions: string[]) => MiddlewareFunction;
/**
* Middleware de rate limiting
*/
export declare const createRateLimitMiddleware: (maxRequests: number, windowMs: number) => MiddlewareFunction;
/**
* Middleware de validación de datos
*/
export declare const createValidationMiddleware: (schema: any) => MiddlewareFunction;
/**
* Middleware de logging
*/
export declare const loggingMiddleware: MiddlewareFunction;
/**
* Middleware de cache
*/
export declare const createCacheMiddleware: (ttl?: number) => MiddlewareFunction;
/**
* Middleware de CORS
*/
export declare const corsMiddleware: MiddlewareFunction;
/**
* Middleware de seguridad
*/
export declare const securityMiddleware: MiddlewareFunction;
export default middlewareManager;