vulcain-corejs
Version:
Vulcain micro-service framework
38 lines (37 loc) • 1.58 kB
TypeScript
import { IContainer } from '../di/resolvers';
import { RequestContext, UserContext } from './requestContext';
import { HttpResponse } from '../pipeline/response';
export interface IHttpRequest {
readonly body: any;
readonly params: any;
readonly query: any;
readonly headers: {
[name: string]: string;
};
readonly hostname: string;
readonly user: UserContext;
}
export declare abstract class AbstractAdapter {
protected domainName: string;
protected container: IContainer;
private commandManager;
private queryManager;
protected testUser: UserContext;
private domain;
private metrics;
private calcDelayInMs(begin);
constructor(domainName: string, container: IContainer);
abstract start(port: number): any;
abstract setStaticRoot(basePath: string): any;
abstract useMiddleware(verb: string, path: string, handler: Function): any;
private startRequest(command);
protected abstract initializeRequestContext(ctx: RequestContext, request: IHttpRequest): any;
protected createRequestContext(request: IHttpRequest): void;
private endRequest(begin, response, ctx, e?);
private populateFromQuery(request);
private populateWithActionSchema(action, request, defaultAction?);
private normalizeCommand(request);
protected executeQueryRequest(request: IHttpRequest, ctx: RequestContext): Promise<HttpResponse>;
protected executeActionRequest(request: IHttpRequest, ctx: RequestContext, command?: any): Promise<HttpResponse>;
private executeRequest(manager, command, ctx);
}