/// /// /// import { User, APIEncoder, ResponseLocals, StaticMountOptions, Renderer, PageSystemSkeleton, MountOptions, ImageResizerOptions, MappedRequestHandler, RequestHandler, RequestHandlerEntry, ExistsRequestHandler, RouteRequestHandler, AccessRequestHandler, RequestHandlerChildEntry, Request, Response } from "../types"; import { Template } from "nhp/lib/Template"; import { Application } from "express"; import express = require("express"); import events = require("events"); import http = require("http"); import nhp = require("nhp"); export declare class LeafRequestHandler implements RequestHandlerEntry { leaf: boolean; handle: RequestHandler; constructor(handler: RequestHandler, actuallyLeaf?: boolean); children(): RequestHandlerChildEntry[]; childPaths(): any; childAt(path: string, createIfNotExists?: boolean): RequestHandlerChildEntry; setChild(path: string, handler: RequestHandlerChildEntry, createIfNotExists?: boolean): void; view(type?: string): string; setView(filename: string, type?: string): void; index(): RequestHandlerEntry; setIndex(index: RequestHandlerEntry): void; routeHandler(): RouteRequestHandler; accessHandler(): AccessRequestHandler; existsHandler(): ExistsRequestHandler; setRouteHandler(index: RouteRequestHandler): void; setAccessHandler(index: AccessRequestHandler): void; setExistsHandler(index: ExistsRequestHandler): void; destroy(): void; } export declare class NHPRequestHandler extends LeafRequestHandler { private impl; private views; private exists; private access; constructor(impl: RequestHandler, redirect?: boolean); view(type?: string): string; setView(filename: string, type?: string): void; accessHandler(): AccessRequestHandler; existsHandler(): ExistsRequestHandler; setAccessHandler(index: AccessRequestHandler): void; setExistsHandler(index: ExistsRequestHandler): void; } export declare function createExtendedRequestHandler(): MappedRequestHandler; export declare class NexusFramework extends events.EventEmitter { readonly nhp: nhp; readonly prefix: string; readonly app: Application; readonly server: http.Server; readonly io?: SocketIO.Server; readonly logger: nulllogger.INullLogger; static readonly apiencoders: { [index: string]: APIEncoder>; }; private socketIOGuests; private socketIOSetup; private replacements; private apis; private versions; private cookieParser; private prestack; private mounts; private stack; private default; private renderoptions; private afterbody; private footer; private header; private loaderEnabled; private multerInstance; private logging; constructor(app?: Application, server?: http.Server, logger?: nulllogger.INullLogger, prefix?: string, nhpoptions?: Object); enableLoader(): void; disableLoader(): void; /** * Push a named version into the array of versions and add a new resource replacement. * The resource replacer can be accessed via `version_{{name}}` */ addVersion(version: string, name: string): void; addReplacement(regex: RegExp, replacement: string | Function): void; enableSignedCookies(secret: any): void; installAfterBodyRenderer(renderer: Renderer): void; installFooterRenderer(renderer: Renderer): void; installHeaderRenderer(renderer: Renderer): void; installAPI(ext: string, encoder: APIEncoder>): void; enableAPIs(encoders: string[]): void; enableLogging(): void; /** * Set the skeleton to use for legacy browsers. * By default NexusFramework displays a Not Supported message. * * This includes IE below version 10, * Chrome below version 4, * Firefox below version 3, * Safari below version 3.1 and * Opera below version 3.5. */ setLegacySkeleton(val: string | Template): void; setIndexOfSkeleton(val: string | Template): void; setSkeleton(val: string | Template): void; setPageSystemSkeleton(val: string | PageSystemSkeleton): void; setErrorDocument(code: number | "*", page?: string): void; mountScripts(mpath?: string): void; mountAbout(mpath?: string, opts?: MountOptions): void; setupPageSystem(): void; setupIO(path?: string, withPageSystem?: boolean, guestsToo?: boolean): string; /** * Mount a NHP page system. * * @param wwwpath The web path * @param fspath The filesystem path * @param options The optional mount options */ mount(webpath: string, fspath: string, options?: MountOptions): RequestHandlerEntry; mountImageResizer(webpath: string, imagefile: string, options?: ImageResizerOptions): RequestHandlerEntry; /** * Mount a directory. * * @param webpath The web path * @param fspath The filesystem path * @param options The mount options */ mountStatic(webpath: string, fspath: string, options?: StaticMountOptions): RequestHandlerEntry; /** * Set a request handler for the specified path. * Replaces any existing request handler. * * @param path The path * @param handler The request handler * @param leaf Whether or not this handler is a leaf, or branch */ mountHandler(webpath: string, handler: RequestHandler, leaf?: boolean): RequestHandlerEntry; /** * Set the default handler, its the handler that gets used when no mounts take the request. */ setDefaultHandler(handler: RequestHandlerEntry): void; /** * Start listening on a specific port. */ listen(port: number, callbackOrHost?: string | Function, callback?: Function): void; /** * NexusFork compatible handler. */ handle(req: Request, res: Response, next: (err?: Error) => void): void; /** * Push middleware to the end of the stack. */ pushMiddleware(middleware: RequestHandler, pre?: boolean): void; /** * Unshift middleware onto the beginning of the stack. */ unshiftMiddleware(middleware: RequestHandler, pre?: boolean): void; /** * Alias for pushMiddleware */ use: (middleware: RequestHandler) => void; runMiddleware(req: Request, res: Response, next: (err?: Error) => void): void; /** * Process the incoming request */ process(req: Request, res: Response, next: (err?: Error) => void): void; upgrade(req: Request, res: Response>, next: (err?: Error) => void): void; static nexusforkUpgrade(req: express.Request, res: express.Response): void; /** * Express compatible handler */ __express(req: express.Request, res: express.Response, next: express.NextFunction): void; static expressUpgradeRequest(req: http.IncomingMessage, onPrototype?: boolean): void; static expressUpgradeResponse(res: http.ServerResponse, onPrototype?: boolean): void; static expressUpgrade(req: http.IncomingMessage, res: http.ServerResponse, onPrototype?: boolean): void; /** * HTTP compatible handler */ __http(req: http.IncomingMessage, res: http.ServerResponse, next: express.NextFunction): void; close(cb?: Function): void; isIOSetup(): boolean; }