Skip to main content

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

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,
};
});