@tsed/common
Version:
A TypeScript Framework on top of Express
104 lines (103 loc) • 3.28 kB
TypeScript
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;
}