vulcain-corejs
Version:
Vulcain micro-service framework
49 lines (48 loc) • 2.04 kB
TypeScript
import { IContainer } from '../di/resolvers';
import { RequestContext, UserContext } from './requestContext';
import { HttpResponse } from '../pipeline/response';
export declare class VulcainHeaderNames {
static X_VULCAIN_TENANT: string;
static X_VULCAIN_CORRELATION_ID: string;
static X_VULCAIN_CORRELATION_PATH: string;
static X_VULCAIN_SERVICE_NAME: string;
static X_VULCAIN_SERVICE_VERSION: string;
static X_VULCAIN_ENV: string;
static X_VULCAIN_CONTAINER: string;
static X_VULCAIN_PUBLICPATH: string;
}
export interface IHttpAdapterRequest {
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 calcDelayInNanoSeconds(begin);
constructor(domainName: string, container: IContainer);
abstract start(port: number): any;
abstract initialize(): any;
abstract setStaticRoot(basePath: string): any;
abstract useMiddleware(verb: string, path: string, handler: Function): any;
protected abstract initializeRequestContext(ctx: RequestContext, request: IHttpAdapterRequest): any;
protected startRequest(request: IHttpAdapterRequest): RequestContext;
private createRequestContext(request);
private endRequest(response, ctx, e?);
private populateFromQuery(request);
private populateWithActionSchema(action, request, defaultAction?);
private normalizeCommand(request);
protected executeQueryRequest(request: IHttpAdapterRequest, ctx: RequestContext): Promise<HttpResponse>;
protected executeActionRequest(request: IHttpAdapterRequest, ctx: RequestContext, command?: any): Promise<HttpResponse>;
private executeRequest(manager, command, ctx);
}