UNPKG

simpleitjs

Version:
82 lines (81 loc) 2.69 kB
/// <reference path="module-scope.d.ts" /> declare const moduleCollection: Module[]; declare const readyModules: { [id: string]: boolean; }; declare const modules: { [id: string]: ModuleScope; }; declare let ModuleScopeMain: typeof ModuleScope; declare enum ModuleType { Standard = 0, Class = 1 } declare class ModuleOpts { type: ModuleType; } /** * Creates a new Module, attaches dependencies * @param {string} Name 1st aargument, name of module to be registed. * @param {string[]} Dependencies 2nd to 2nd last argument, dependencies of the module. * @param {Function} ReadyFnc Last argument, resolved ready function. * @returns {{name:string;dependencies:string[];readyFnc:Function;scope:Object}} */ declare class Module { name: string; dependencies: string[]; readyFnc: typeof ModuleScopeMain; scope: ModuleScope; moduleHolder: ModuleScope; constructionOpts?: Object; moduleOpts?: ModuleOpts; type: ModuleType; constructor(...args: any[]); /** * Returns list of unresolved modules. * @param {string[]} mods modules names */ getUnResolvedModules(mods: string[]): string[]; /** * Returns module by name * @param {string} name module name * @returns {Module} */ static getModuleByName(name: string): Module | null; checkInterDependency(module: Module, overTimeReady?: { [id: string]: boolean; }): false | string[]; /** * Releases all modules with support to interdependency on each other. * @param {string[]} moduleNames module names in string list. */ releaseModules(moduleNames: string[]): void; /** * Checks and releases modules from main collection */ checkNReleaseMods(): void; /** * Checks if dependencies are loaded or not. * @param {Module} module Module to check * @returns {boolean} */ areDepLoaded(module: Module): boolean; /** * Releases module, calls its ready function. * @param {Module} module Module to release. */ releaseModule(module: Module): void; /** * Returns module by name * @param {string} name name of module to get. */ static get(name: string): ModuleScope; /** * Extends module by calling given function, module score is provided as arg and expected new updated scope. * Use this to extend functionality * @param {string} name name of module to get. * @param {Function} fnc extnding callback function. */ static extend(name: string, fnc: (model: ModuleScope) => ModuleScope): void; } declare var module: any;