UNPKG

@istanbul/app

Version:

App package of istanbul framework

37 lines (36 loc) 1.27 kB
import { App } from "./app.type"; import { ConstructorType } from "./util.type"; export interface Module { name: string; dependencies: Map<string, Module>; providers: ModuleProviders; exports: Map<string, ModuleProvider>; installed: boolean; install: (app: App, modules: Map<string, Module>) => void | Promise<void>; global: boolean; } export declare type ModuleProviders = { [key: string]: any; }; export declare type ModuleProviderFunction = (params: ModuleProviderParams) => any; export declare type ModuleProviderClass = ConstructorType<any, any>; export declare type ModuleProviderObject<T> = { name: string; value: T; }; export declare type ModuleRegisterer = { key: string; install?: () => void; }; export declare type ModuleProvider = ModuleProviderFunction | ModuleProviderClass | ModuleProviderObject<any>; export declare type ModuleParams = { imports?: Array<Module | ModuleRegisterer>; providers?: Array<ModuleProvider>; exports?: Array<ModuleProvider>; global?: boolean; }; export declare type ModuleProviderParams = { [key: string]: any; }; export declare type ModuleCreator = (name: string, params?: ModuleParams) => Module; export declare function isModule(module: any): module is Module;