Contains all of the functions to manage the loading, unloading, reloading, registering, unregistering of plugins and plugin metaData.
- Copyright:
- Copyright © 2022-… by Seth Hollingsead. All rights reserved
- Source:
Requires
- module:pluginBroker
- module:chiefConstant
- module:chiefTheme
- module:loggers
- module:stack
- @haystacks/constants
- path
Methods
(inner) clearPluginRegistry() → {boolean}
This is a wrapper function for pluginBroker.unregisterAllPlugins.
- Source:
Returns:
True or False to indicate if the plugin registry data hive was cleared successfully or not.
- Type
- boolean
(inner) countAllPluginsInRegistry() → {integer}
This is a wrapper function for pluginBroker.countPluginsInRegistry.
- Source:
Returns:
The count of the number of plugins listed in the plugin registry data hive.
- Type
- integer
(inner) countAllPluginsInRegistryPath() → {integer}
This is a wrapper function for pluginBroker.countPluginsInRegistryPath.
- Source:
Returns:
The count of the number of plugin sub-folders in the plugins path listed in the plugin registry data hive.
- Type
- integer
(inner) getAllPluginsInRegistry() → {array.<string>}
This is a wrapper function for pluginBroker.listPluginsInRegistry.
- Source:
Returns:
A list array of the names of the plugins in the plugin registry.
- Type
- array.<string>
(inner) getAllPluginsInRegistryPath() → {array.<string>}
This is a wrapper function for pluginBroker.listPluginsInRegistryPath.
- Source:
Returns:
A list array of the names of the plugins located at the specified path on the local system from the plugins registry data hive.
- Type
- array.<string>
(inner) getAllPluginsPathsInRegistry() → {array.<string>}
This is a wrapper function for pluginBroker.listPluginsPathsInRegistry The purpose is to get the array of paths for all of the plugins that must be loaded.
- Source:
Returns:
A list array of all the paths of all the plugins in the plugin registry.
- Type
- array.<string>
(inner) getPluginsRegistryPath() → {string}
This is a wrapper function for the pluginBroker.getPluginsRegistryPath.
- Source:
Returns:
The path to the plugins listed in the plugin registry as meta-data.
- Type
- string
(inner) integrateAllPluginsData(allPluginsData) → {boolean}
Integrates all plugin data for each plugin with the haystacks data structures, this is the final step if the loading of the plugins and basically ensures that all runtime operations of all of the loaded plugins are fully integrated and activated within the haystacks execution environment.
Parameters:
| Name | Type | Description |
|---|---|---|
allPluginsData |
object | All of the plugins data for each plugin all combined together into a single JSON data object. |
- Source:
Returns:
True or False to indicate if all of the data integration was successful or not.
- Type
- boolean
(inner) integratePluginData(pluginName, pluginData) → {boolean}
Integrates a single plugin data set with the haystacks data structures.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginName |
string | The name of the plugin that should have its data integrated with the haystacks data structure. |
pluginData |
object | The data for the named plugin that should be integrated wtih the haystacks data structure. |
- Source:
Returns:
True or False to indicate if all the plugin data was integrated successfully with the haystacks data structures.
- Type
- boolean
(inner) listLoadedPlugins() → {array.<string>}
This is a wrapper function for pluginBroker.listAllLoadedPlugins.
- Source:
Returns:
A list array of the names of the plugins that are currently loaded.
- Type
- array.<string>
(inner) loadAllPlugins(pluginsExecutionPaths, pluginsMetaData) → {object}
This is a wrapper function that iterates over the list of plugin URI paths to import and calls the loadPlugin function on the pluginBroker to actually load the plugin data, metaData, business rules, commands, constants, constants validation, command aliases, configuration settings, debug settings and workflows.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginsExecutionPaths |
array.<string> | An array of fully qualified path URI's to be imported and executed for each plugin. |
pluginsMetaData |
array.<object> | An array of JSON objects that contain all of the package.json data loaded for each plugin that should be imported, we are passing this along here, to have access to the name of each plugin as it is loaded. |
- Source:
Returns:
An object containing objects that contain all of the data and functions from each plugin, these will need to be decomposed and merged with the D-data structure as appropriate.
- Type
- object
(inner) loadAllPluginsExecutionPaths(pluginsMetaData, pluginsPaths) → {array.<string>}
Extracts the path to the main entry point for each plugin and does a path join to form a fully qualified path, then converts the fully qualified path to a file URI so it can be imported.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginsMetaData |
array.<object> | An array of JSON objects that contain all of the package.json data loaded for each plugin that should be imported. |
pluginsPaths |
array.<string> | An array of fully qualified paths where each plugin was loaded from, used to path.join with the execution path entry point file for each plugin. |
- Source:
Returns:
An array of fully qualified path URI's for each of the main entry points for all of the plugins that should be loaded.
- Type
- array.<string>
(inner) loadAllPluginsMetaData(pluginsPaths) → {array.<object>}
Loads the plugin meta data for all of the plugins in the input plugins path array.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginsPaths |
array.<string> | Should be the entry-point to the plugin, but it could also be the name of the folder in the plugin registry path that is the entry-point to the plugin. If its the later than we will need to compose the fully qualified path. |
- Source:
Returns:
An array that contains all of the meta-data, for each of the plugins in the input pluginsPaths array.
- Type
- array.<object>
(inner) loadPluginRegistryData(pluginRegistryPath) → {object}
Loads the plugin registry meta data which includes paths to plugins.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginRegistryPath |
string |
- Source:
Returns:
A JSON object loaded from the specified path with the plugin paths and plugin metaData.
- Type
- object
(inner) persistPluginRegistryToDataStructure(pluginRegistryData) → {boolean}
Saves the plugin registry data to the D-data structure.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginRegistryData |
object |
- Source:
Returns:
True or False to indicate if the persistense was successful or not.
- Type
- boolean
(inner) registerNamedPlugin(pluginName, pluginPath) → {boolean}
This is a wrapper function for pluginBroker.registerPlugin.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginName |
string | The name of the plugin that should be registered. |
pluginPath |
string | The path to the plugin, to be added to the plugin registry. This should be the path to the plugin/package.json file, but not including the package.json as part of the path URI. |
- Source:
Returns:
True or False to indicate if the plugin was added to the plugin registry successfully or not.
- Type
- boolean
(inner) savePluginRegistryDisk() → {boolean}
This is a wrapper function for pluginBroker.savePluginRegistry.
- Source:
Returns:
True or False to indicate if the plugin registry was successfully saved to the disk or not.
- Type
- boolean
(inner) synchronizePluginRegistryWithPath() → {boolean}
This is a wrapper function for pluginBroker.syncPluginRegistryWithPluginRegistryPath.
- Source:
Returns:
True or False to indicate if the synchronization was performed successfully or not.
- Type
- boolean
(inner) unloadPlugin(pluginName) → {boolean}
Unloads a plugin by removing all of the plugin data and meta-data from all of the appropriate data structures in the D-data structure. This is a wrapper function for calling the pluginBroker to get the work done.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginName |
string | The name of the plugin that should have all its data unloaded from the D-data structure. |
- Source:
Returns:
True or False to indicate if the plugin was unloaded successfully or not.
- Type
- boolean
(inner) unregisterNamedPlugin(pluginName) → {boolean}
This is a wrapper function for pluginBroker.unregisterPlugin.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginName |
string | The name of the plugin that should be removed from the plugin registry. |
- Source:
Returns:
True or False to indicate if the plugin was removed from the plugin registry successfully or not.
- Type
- boolean
(inner) unregisterPlugins(pluginListArray) → {boolean}
This is a wrapper function for pluginBroker.unregisterPlugins.
Parameters:
| Name | Type | Description |
|---|---|---|
pluginListArray |
array.<string> | A list array of plugin names that should be removed from the plugin registry. |
- Source:
Returns:
True or False to indicate if all the plugins were removed from the plugin registry successfully or not.
- Type
- boolean
(inner) verifyAllPluginsLoaded() → {boolean}
Examines the pluginsLoaded stack to confirm that none of the plugins which were supposed to have been loaded failed to load.
- Source:
Returns:
True or False to indicate if all of the plugins were loaded successfully or not.
- Type
- boolean