in lib/host.ts [133:157]
public serve(request: string | Request): Promise<Response> {
return new Promise<RequestContext>(resolve => {
if (typeof request === 'string') {
request = utils.appendMessageOnException(
". Fail to parse request string.",
() => { return JSON.parse(<string>request);});
}
// Lookup base template and application.
let base: RequestTemplate = undefined;
if ((<Request>request).base != null) {
base = this._requestTemplateManager.getOrLoad((<Request>request).base);
} else {
let appName = (<Request>request).application;
if (appName == null) {
throw new Error("Either 'application' or 'base' should be present in request.");
}
let app = this.getApplication(appName);
base = app.defaultRequestTemplate;
}
resolve(new RequestContext(base, <Request>request));
}).then((context: RequestContext) => {
return context.execute();
});
}