jumbo-core
Version:
Modern lightweight fast enterprise level MVW framework for Node.js
87 lines (86 loc) • 3.74 kB
TypeScript
import * as $fs from "fs";
import * as $http from "http";
export declare const CSRF_KEY_NAME = "__forgery_token";
export declare class Application {
private server;
private serverIsReady;
private port;
private requests;
private locator;
private diContainer;
private controllerFactory;
private sessions;
private sessionsSize;
private memoryCache;
private memoryCacheQueue;
private memoryCacheSize;
private blockIpListener;
private staticFileResolver;
private templateAdapter;
private csrf;
serverIsRunning: boolean;
getLocator(): Locator;
getDIContainer(): DIContainer;
setStaticFileResolver(handler: (fileName: string, callback: (error: Error, readStream: $fs.ReadStream, mime: string, size: number, headers?: {
[]: any;
}) => void) => void): void;
setBlockIpListener(listener: (clientIp: string) => void): void;
static readonly instance: Application;
setTemplateAdapter(adapter: ITemplateAdapter): void;
constructor();
registerIntervalTask(time: any, func: any): void;
registerDailyTask(hour: any, minute: any, second: any, func: any): void;
runWhenReady(port: any, callback: any): void;
getClientIP(request: $http.IncomingMessage): string;
static exit(): void;
workersReady(): void;
private beforeRunWhenReadyCallback();
private setErrorHandlingEvents();
private initClustering();
private createServer();
private prepareRequestsSetting();
private prepareHttpsServerOptions();
private serverCallback(request, response);
private setResponseHeaders(response);
private checkStaticFileRequest(request, response);
private checkEndingDelimiter(request, response);
private checkIPRequestsLimit(clientIP, response);
private checkRequestsLimit(response, clientIP);
private verifyCsrfToken(jRequest, jResponse, session);
getCsrfSecret(session: {
[]: any;
}): string;
generateCsrfSecret(session: {
[]: any;
}): Promise<string>;
generateCsrfTokenFor(secret: string): string;
private processRequest(request, response, requestBeginTime);
private prepareCsrf(session);
private procUrlParseError(match, request, response, jResponse);
private setClientSession(jRequest, jResponse);
private getClientSession(jRequest);
private buildRequest(request, requestBeginTime, match);
private checkLongFormatUrl(req, match);
private collectBodyData(req, res);
private createController(request, response, session);
private initController(cntrll, req, res, session, scope);
private callBeforeActions(ctrl, request);
private callAction(controller, request);
private afterAction(controller, actionResult);
private storeSession(cntrll, req);
private getTemplateCacheName(viewResult, req);
private prepareView(controller, req, res, viewResult);
private sendView(output, res, ctrl);
private compileAndRenderView(viewResult, req, res, cntrl, writeToCache, tplCacheFileName);
private prepareRenderViewProperties(req, viewResult);
private getTemplatePath(appPath, viewResult);
private getAppPath(req);
private cacheViewTemplate(tplCacheFile, compiledtemplate);
private afterTemplateRender(ctrl);
private plainResponse(response, message, code);
private redirectResponse(response, url, statusCode?);
private displayError(request, response, errObj);
private renderException(message, ex, status, request, response);
}
import { Locator } from "jumbo-core/application/Locator";
import { DIContainer } from "jumbo-core/ioc/DIContainer";