UNPKG

express-mesh

Version:

A Gentics Mesh frontend for Express.

66 lines (65 loc) 2.42 kB
import express = require('express'); import { IMeshRequest } from "./mesh"; import { IMeshNode } from "./mesh"; import { IMeshResponse } from "./mesh"; import { IMeshErrorHandler } from "./meshHandlerStore"; import { IMeshViewHandler } from "./meshHandlerStore"; import { IMeshSchemaHandler } from "./meshHandlerStore"; /** * Render information that will be passed to the rendered template in the RenderData. */ export declare class RenderInformation { activeLanguage: string; availableLanguages: Array<string>; languageURLs: { [key: string]: string; }; username: string; loggedin: boolean; /** * Constructor that initializes the render information. * @param req The MeshRequest. * @param node The MeshNode that should be rendered. */ constructor(req: any, node?: IMeshNode<any>); } /** * Render data that is passed to the rendered template and contains the data that should be rendered. */ export declare class RenderData { node: IMeshNode<any>; nodes: Array<IMeshNode<any>>; renderInformation: RenderInformation; meta: any; constructor(); } /** * The MeshRenderer is responsible for rendering templates. */ export declare class MeshRenderer { private app; private viewDir; static TEMPLATE_EXTENSION: string; private schemaHandlerStore; private errorHandlerStore; private viewHandlerStore; /** * Initialize the renderer. * @param app Express app. * @param viewDir Directory that contains the templates. */ constructor(app: express.Express, viewDir: string); registerSchemaHandler<T>(schema: string, handler: IMeshSchemaHandler<T>): void; registerErrorHandler(status: number, handler: IMeshErrorHandler): void; registerViewRenderHandler(handler: IMeshViewHandler): void; renderMeshNode<T>(node: IMeshNode<T>, req: IMeshRequest, res: IMeshResponse): void; renderError(status: number, req: IMeshRequest, res: IMeshResponse, err?: any): void; private viewExists(name); renderView(name: string, data: RenderData, req: IMeshRequest, res: IMeshResponse): void; private handleMicroNodeFields<T>(node, req, res); private resolveField(field, req, res); private meshNodeToString<T>(node, req, res); private getSchemaKey<T>(node); private renderTemplate(name, data); getRenderData<T>(node: IMeshNode<T>, req: IMeshRequest): RenderData; }