UNPKG

bb-inspired

Version:

Core library for BB-inspired NestJS backend

53 lines (52 loc) 1.74 kB
import { Type } from '@nestjs/common'; import { ModuleMetadata, Abstract, ForwardReference } from '@nestjs/common/interfaces'; export interface OdooInspiredModuleMetadata extends ModuleMetadata { name: string; version: string; description?: string; dependencies?: string[]; isCore?: boolean; priority?: number; settings?: Record<string, any>; } export interface ModuleLifecycle { onModuleInit?(): Promise<void> | void; onModuleDestroy?(): Promise<void> | void; onApplicationBootstrap?(): Promise<void> | void; onApplicationShutdown?(signal?: string): Promise<void> | void; } export interface ModuleFactory<T> { create(options: T): DynamicOdooInspiredModule; } export interface DynamicOdooInspiredModule extends OdooInspiredModuleMetadata { module: Type<any>; global?: boolean; } export interface ModuleConfigOptions { name: string; version: string; enabled?: boolean; description?: string; dependencies?: string[]; optionalDependencies?: string[]; providers?: Array<Type<any> | Abstract<any> | ForwardReference | any>; exports?: Array<Type<any> | Abstract<any> | ForwardReference | string | any>; entities?: Type<any>[]; controllers?: Type<any>[]; lifecycle?: ModuleLifecycle; config?: Record<string, any>; } export interface ModuleContext { name: string; version: string; config: Record<string, any>; get<T>(token: Type<T> | string | symbol): T; logger: { log(message: any): void; error(message: any, trace?: string): void; warn(message: any): void; debug(message: any): void; verbose(message: any): void; }; emit(eventName: string, payload: any): Promise<void>; }