Class: PluginLoader
Defined in: packages/core/src/pluginLoader.ts:9
Plugin loader utility used to register external IMA.js plugins. This adds ability for external packages to automatically hook into several IMA.js application parts and automatically bootstrap certain settings.
Properties
_bootstrap?
protectedoptional_bootstrap:Bootstrap
Defined in: packages/core/src/pluginLoader.ts:14
_plugins
protected_plugins:Record<string, {name:string;plugin:InitPluginConfig; }>
Defined in: packages/core/src/pluginLoader.ts:10
Methods
getPlugins()
getPlugins():
object[]
Defined in: packages/core/src/pluginLoader.ts:88
Returns array of registered IMA.js plugins.
Returns
object[]
Array of IMA.js plugins.
init()
init(
bootstrap):void
Defined in: packages/core/src/pluginLoader.ts:36
Initializes the plugin loader with bootstrap instance. Which is later used to handle dynamically loaded IMA.js plugins.
Parameters
bootstrap
App bootstrap instance.
Returns
void
register()
register(
name,registerFn):void
Defined in: packages/core/src/pluginLoader.ts:57
Registers plugin into IMA.js bootstrap sequence.
Parameters
name
string
Plugin name.
registerFn
(ns) => void | InitPluginConfig
Plugin initialization function.
Returns
void
Example
pluginLoader.register('@ima/plugin-logger', ns => {
ns.set('ima.plugin.logger', logger);
return {
initSettings,
initServices,
initBind,
};
});