UNPKG

@kwaeri/controller

Version:

The @kwaeri/controller component of the @kwaer/node-kit application platform.

125 lines (124 loc) 3.13 kB
/** * SPDX-PackageName: kwaeri/controller * SPDX-PackageVersion: 0.3.4 * SPDX-FileCopyrightText: © 2014 - 2022 Richard Winters <kirvedx@gmail.com> and contributors * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR MIT */ /// <reference types="node" resolution-mode="require"/> import { EventEmitter } from 'stream'; export declare namespace Layout { /** * @typedef { Object } RenderedLayoutModules * @property { any } RenderedModulePosition */ type RenderedModules = { [key: string]: any; }; /** * @typedef { Object } LayoutModules * @property { string[] } ModulePositionsList * @property { RenderedModules } RenderedModuleCollection */ type Modules = { positions: string[]; rendered: RenderedModules; }; } /** * The Controller is leveraged by the kwaeri/node-kit framework in order to * derive application controllers by composition - at runtime - from all supplied * action controllers, */ export declare class Controller { /** * @var configuration */ configuration: any; /** * @var derivationPath */ private derivationPath; /** * @var model */ model: any; /** * @var renderer */ renderer: any; /** * @var promoter */ promoter: EventEmitter.EventEmitter; /** * @var extensions */ extensions: any; /** * @var modules */ modules: Layout.Modules; /** * Class constructor */ constructor(configuration: any); /** * Imports the configured layouts metadata and parses it. Should be called * where the controller is instantiated. * * @param { void } * * @returns { Promise<boolean> } The promise of a boolean */ initLayouts(): Promise<boolean>; /** * Approaches the client's request * * @param request * @param response */ approach(request: any, response: any): Promise<void>; setUserAuth(sid: any, user: any, auth: any): void; respond(request: any, response: any, buffer: any): void; /** * Renders a response for the client * * @param request * @param response * @param klay */ render(request: any, response: any, klay: any, overrideModules: any): void; /** * Renders a response for the client * * @param request * @param response * @param klay */ renderModule(request: any, response: any, klay: any): void; /** * Renders module content * * @param request * @param response * @param klay */ processModules(request: any, response: any, klay: any, future: any): void; next(content: any): void; /** * Fetches data for modules * * @param fn * @param options */ renderWithModuleContent(request: any, response: any, klay: any, forwarded: any): Promise<void>; /** * Handles 404 error handling for our server * * @param request * @param response * * @return { void } */ handle404(request: any, response: any): void; }