@kwaeri/controller
Version:
The @kwaeri/controller component of the @kwaer/node-kit application platform.
125 lines (124 loc) • 3.13 kB
text/typescript
/**
* 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;
}