UNPKG

jumbo-core

Version:

Modern lightweight fast enterprise level MVW framework for Node.js

87 lines (86 loc) 3.74 kB
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?: { [key: string]: 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: { [key: string]: any; }): string; generateCsrfSecret(session: { [key: string]: 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";