mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Handle subflow modules with their own npm dependencies
This commit is contained in:
@@ -194,7 +194,7 @@ var api = module.exports = {
|
||||
}
|
||||
if (opts.module) {
|
||||
var existingModule = runtime.nodes.getModuleInfo(opts.module);
|
||||
if (existingModule) {
|
||||
if (existingModule && existingModule.user) {
|
||||
if (!opts.version || existingModule.version === opts.version) {
|
||||
runtime.log.audit({event: "nodes.install",module:opts.module, version:opts.version, error:"module_already_loaded"}, opts.req);
|
||||
var err = new Error("Module already loaded");
|
||||
|
@@ -181,11 +181,12 @@ function installModule(module,version,url) {
|
||||
|
||||
function uninstallModule(module) {
|
||||
var info = registry.getModuleInfo(module);
|
||||
if (!info) {
|
||||
if (!info || !info.user) {
|
||||
throw new Error(log._("nodes.index.unrecognised-module", {module:module}));
|
||||
} else {
|
||||
for (var i=0;i<info.nodes.length;i++) {
|
||||
flows.checkTypeInUse(module+"/"+info.nodes[i].name);
|
||||
var nodeTypesToCheck = info.nodes.map(n => `${module}/${n.name}`);
|
||||
for (var i=0;i<nodeTypesToCheck.length;i++) {
|
||||
flows.checkTypeInUse(nodeTypesToCheck[i]);
|
||||
}
|
||||
return registry.uninstallModule(module).then(function(list) {
|
||||
events.emit("runtime-event",{id:"node/removed",retain:false,payload:list});
|
||||
|
Reference in New Issue
Block a user