import { TModuleConfigObjects, TServicePathsList, TModuleInitList } from './types'; /** * @interface IModuleConfig Represents the configuration of a module. */ export interface IModuleConfig { /** * @property The "URL friendly" name of the module. Mainly used for logging. */ name: string; /** * @property The displayable name of the module. Used to show a readable name of this module to a user. */ displayName?: string; /** * @property Path or list of paths to this module services. */ services?: TServicePathsList; /** * @property Defines the default configuration of this module. Can be a config object or array of config objects, a path or array of * paths to config files. */ config?: TModuleConfigObjects; /** * @property Defines the methods to call when this module is initialized. Can be an init method or array of init methods, a path or array * of paths to initialization scripts. */ init?: TModuleInitList; } /** * @interface IModule Represents a loaded module. */ export interface IModule { /** * @property The absolute path to the module directory. */ path: string; /** * @property The configuration of the module. */ config: IModuleConfig; }