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?
protected
optional
_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,
};
});