UNPKG

container.ts

Version:
27 lines (26 loc) 754 B
import { Observable } from "./RxJS"; /** Container options injected by awilix library. */ export interface IModuleOptions { moduleName: string; opts: any; } /** Module dependencies. */ export interface IModuleDependencies { [key: string]: IModuleConstructor; } /** Module constructor interface. */ export interface IModuleConstructor { moduleName: string; new (options: IModuleOptions): IModule; } /** Container module. */ export interface IModule { moduleName: string; moduleDependencies(...previous: IModuleDependencies[]): IModuleDependencies; moduleUp(): void | Observable<void>; moduleDown(): void | Observable<void>; } /** Module state interface. */ export interface IModuleState { [key: string]: boolean; }