UNPKG

@zerooneit/expressive-tea

Version:
35 lines (34 loc) 1.37 kB
import { Express, Router } from 'express'; import { ExpressiveTeaModuleProps } from '../libs/interfaces'; /** * @typedef {Object} ExpressiveTeaModuleProps * @property {Object[]} controllers Controllers Assigned to Module * @property {Object[]} providers Dependency Injection Providers * @property {string} mountpoint Endpoint part which Module it will use as root. */ /** * @module Decorators/Module */ /** * Module Decorator is a Class Decorator which is help to register a Module into Expressive Tea. A module is a * placeholder over a mountpoint. We can considerate a module like a container which provide isolation and modularity * for our project. This module can be mounted in different applications and will move all the controller routes too. * @decorator {ClassDecorator} Module - Module Class Register Decorator * @param {ExpressiveTeaModuleProps} options * @summary Module Decorator * @example * {REPLACE-AT}Module({ * controllers: [], * providers: [], * mountpoint: '/' * }) * class Example {} */ export declare function Module(options: ExpressiveTeaModuleProps): <T extends new (...args: any[]) => {}>(Module: T) => { new (...args: any[]): { readonly settings: ExpressiveTeaModuleProps; readonly router: Router; readonly controllers: any[]; __register(server: Express): void; }; } & T;