mirror of https://github.com/node-red/node-red.git
30 lines
806 B
JavaScript
30 lines
806 B
JavaScript
|
RED.plugins = (function() {
|
||
|
var plugins = {};
|
||
|
var pluginsByType = {};
|
||
|
|
||
|
function registerPlugin(id,definition) {
|
||
|
plugins[id] = definition;
|
||
|
if (definition.type) {
|
||
|
pluginsByType[definition.type] = pluginsByType[definition.type] || [];
|
||
|
pluginsByType[definition.type].push(definition);
|
||
|
}
|
||
|
if (definition.onadd && typeof definition.onadd === 'function') {
|
||
|
definition.onadd();
|
||
|
}
|
||
|
RED.events.emit("registry:plugin-added",id);
|
||
|
}
|
||
|
|
||
|
function getPlugin(id) {
|
||
|
return plugins[id]
|
||
|
}
|
||
|
|
||
|
function getPluginsByType(type) {
|
||
|
return pluginsByType[type] || [];
|
||
|
}
|
||
|
return {
|
||
|
registerPlugin: registerPlugin,
|
||
|
getPlugin: getPlugin,
|
||
|
getPluginsByType: getPluginsByType
|
||
|
}
|
||
|
})();
|