UNPKG

@tsed/common

Version:
104 lines (103 loc) 3.28 kB
import { InjectorService, Provider } from "@tsed/di"; import { EndpointMetadata, HandlerMetadata, ParamTypes } from "../../mvc"; import { HandlerContext } from "../domain/HandlerContext"; import { PlatformContext } from "../domain/PlatformContext"; import { PlatformRouteWithoutHandlers } from "../interfaces/PlatformRouterMethods"; export interface OnRequestOptions { $ctx: PlatformContext; metadata: HandlerMetadata; next?: any; err?: any; [key: string]: any; } /** * Platform Handler abstraction layer. Wrap original class method to a pure platform handler (Express, Koa, etc...). * @platform */ export declare class PlatformHandler { protected injector: InjectorService; constructor(injector: InjectorService); /** * Create a native middleware based on the given metadata and return an instance of HandlerContext * @param input * @param options */ createHandler(input: EndpointMetadata | HandlerMetadata | any, options?: PlatformRouteWithoutHandlers): Function; createCustomHandler(provider: Provider<any>, propertyKey: string): Function; /** * Create handler metadata * @param obj * @param routeOptions */ createHandlerMetadata(obj: any | EndpointMetadata, routeOptions?: PlatformRouteWithoutHandlers): HandlerMetadata; /** * Get argument from parameter medata or handler context. * @param type * @param h */ protected getArg(type: ParamTypes | string, h: HandlerContext): any; protected onCtxRequest(requestOptions: OnRequestOptions): Promise<any>; /** * Call handler when a request his handle * @param requestOptions */ protected onRequest(requestOptions: OnRequestOptions): Promise<any>; protected onError(er: unknown, requestOptions: OnRequestOptions): Promise<any>; /** * Manage success scenario * @param data * @param requestOptions * @protected */ protected onSuccess(data: any, requestOptions: OnRequestOptions): Promise<any>; /** * Call the returned middleware by the handler. * @param middleware * @param ctx * @param next * @protected */ protected callReturnedMiddleware(middleware: any, ctx: PlatformContext, next: any): any; /** * Send the response to the consumer. * @param data * @param ctx * @protected */ protected flush(data: any, ctx: PlatformContext): Promise<void>; /** * Render the view if the endpoint has a configured view. * @param data * @param ctx * @protected */ protected render(data: any, ctx: PlatformContext): Promise<any>; /** * create Raw handler * @param metadata */ protected createRawHandler(metadata: HandlerMetadata): Function; /** * Set response headers * @param ctx * @protected */ protected setHeaders(ctx: PlatformContext): void; protected next(requestOptions: OnRequestOptions): any; /** * Return arguments to call handler * @param h */ private getArgs; /** * Sort pipes before calling it * @param metadata */ private sortPipes; /** * Map argument by calling pipe. * @param metadata * @param h */ private mapArg; }