@sigiljs/sigil
Version:
TypeScript-first Node.js HTTP framework offering schema-driven routing, modifier-based middleware, plugin extensibility, and flexible response templating
49 lines (48 loc) • 1.95 kB
TypeScript
import { IncomingRequestProcessorResponse } from '../../requests/containers';
import { MiddlewareModificationRequestOptions } from '../../responses/middleware-modification-request';
import { default as SigilResponsesList } from './sigil-responses-list';
import { Internal } from '../../types';
/**
* Possible return type for middleware callbacks.
* A middleware may return a handler response, undefined, or void.
*/
export type MiddlewareResponse = Internal.Requests.HandlerResponse | undefined | void;
/**
* Signature for Sigil middleware functions.
*
* @param request processed incoming request object.
* @param response factory for generating response helpers.
* @param modification response modification request
* @returns MiddlewareResponse or a promise resolving to one.
*/
export type SigilMiddlewareCallback = (request: IncomingRequestProcessorResponse, response: SigilResponsesList, modifications: MiddlewareModificationRequestOptions) => MiddlewareResponse | Promise<MiddlewareResponse>;
/**
* Wrapper class for Sigil middleware, providing lifecycle control.
*/
export declare class SigilMiddleware {
#private;
/**
* Constructs a new SigilMiddleware.
*
* @param executor middleware callback to execute on each request.
* @param onRemove callback to invoke when this middleware is removed.
* @param id unique ID assigned to this middleware.
*/
constructor(executor: SigilMiddlewareCallback, onRemove: () => void, id: string);
/**
* Returns the string representation of this middleware (its ID).
*
* @returns middleware ID.
*/
toString(): string;
/**
* Removes this middleware by invoking its removal callback.
*/
removeMiddleware(): void;
/**
* Retrieves the original middleware callback function.
*
* @returns SigilMiddlewareCallback assigned to this instance.
*/
getMiddlewareCallback(): SigilMiddlewareCallback;
}