mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Remove 'loaded' property from external node info object
and fix everything that doing this broke
This commit is contained in:
@@ -29,7 +29,7 @@ var settings = require("../settings");
|
||||
module.exports = {
|
||||
getAll: function(req,res) {
|
||||
if (req.get("accept") == "application/json") {
|
||||
res.json(redNodes.getNodeList().map(function(n) { delete n.loaded; return n }));
|
||||
res.json(redNodes.getNodeList());
|
||||
} else {
|
||||
res.send(redNodes.getNodeConfigs());
|
||||
}
|
||||
@@ -43,7 +43,7 @@ module.exports = {
|
||||
var node = req.body;
|
||||
var promise;
|
||||
if (node.module) {
|
||||
var module = redNodes.getNodeModuleInfo(node.module);
|
||||
var module = redNodes.getModuleInfo(node.module);
|
||||
if (module) {
|
||||
res.json(400,{message:"Module already loaded"});
|
||||
return;
|
||||
@@ -72,7 +72,7 @@ module.exports = {
|
||||
var mod = req.params.mod;
|
||||
try {
|
||||
var promise = null;
|
||||
var module = redNodes.getNodeModuleInfo(mod);
|
||||
var module = redNodes.getModuleInfo(mod);
|
||||
if (!module) {
|
||||
res.send(404);
|
||||
return;
|
||||
@@ -83,9 +83,11 @@ module.exports = {
|
||||
promise.then(function() {
|
||||
res.send(204);
|
||||
}).otherwise(function(err) {
|
||||
res.json(400,{message:err.toString()});
|
||||
console.log(err.stack);
|
||||
res.json(400,{message:err.toString()});
|
||||
});
|
||||
} catch(err) {
|
||||
console.log(err.stack);
|
||||
res.json(400,{message:err.toString()});
|
||||
}
|
||||
},
|
||||
@@ -96,7 +98,7 @@ module.exports = {
|
||||
if (req.get("accept") === "application/json") {
|
||||
result = redNodes.getNodeInfo(id);
|
||||
if (result) {
|
||||
result.version = redNodes.getModuleVersion(req.params.mod);
|
||||
delete result.loaded;
|
||||
}
|
||||
} else {
|
||||
result = redNodes.getNodeConfig(id);
|
||||
@@ -112,7 +114,7 @@ module.exports = {
|
||||
var module = req.params.mod;
|
||||
var result = redNodes.getModuleInfo(module);
|
||||
if (result) {
|
||||
res.send(result);
|
||||
res.json(result);
|
||||
} else {
|
||||
res.send(404);
|
||||
}
|
||||
@@ -135,6 +137,7 @@ module.exports = {
|
||||
if (!node) {
|
||||
res.send(404);
|
||||
} else {
|
||||
delete node.loaded;
|
||||
res.json(putNode(node, body.enabled));
|
||||
}
|
||||
} catch(err) {
|
||||
|
@@ -85,12 +85,12 @@ function removeNode(id) {
|
||||
}
|
||||
|
||||
function removeModule(module) {
|
||||
var info = registry.getNodeModuleInfo(module);
|
||||
var info = registry.getModuleInfo(module);
|
||||
if (!info) {
|
||||
throw new Error("Unrecognised module: "+module);
|
||||
} else {
|
||||
for (var i=0;i<info.length;i++) {
|
||||
checkTypeInUse(module+"/"+info[i]);
|
||||
for (var i=0;i<info.nodes.length;i++) {
|
||||
checkTypeInUse(module+"/"+info.nodes[i].name);
|
||||
}
|
||||
return registry.removeModule(module);
|
||||
}
|
||||
@@ -124,11 +124,8 @@ module.exports = {
|
||||
getNodeInfo: registry.getNodeInfo,
|
||||
getNodeList: registry.getNodeList,
|
||||
|
||||
getNodeModuleInfo: registry.getNodeModuleInfo,
|
||||
|
||||
getModuleInfo: registry.getModuleInfo,
|
||||
getModuleList: registry.getModuleList,
|
||||
getModuleVersion: registry.getModuleVersion,
|
||||
|
||||
getNodeConfigs: registry.getNodeConfigs,
|
||||
getNodeConfig: registry.getNodeConfig,
|
||||
|
@@ -34,9 +34,6 @@ function filterNodeInfo(n) {
|
||||
types: n.types,
|
||||
enabled: n.enabled
|
||||
};
|
||||
if (n.hasOwnProperty("loaded")) {
|
||||
r.loaded = n.loaded;
|
||||
}
|
||||
if (n.hasOwnProperty("module")) {
|
||||
r.module = n.module;
|
||||
}
|
||||
@@ -82,7 +79,6 @@ var registry = (function() {
|
||||
if (nodes.hasOwnProperty(node)) {
|
||||
var config = nodes[node];
|
||||
var n = filterNodeInfo(config);
|
||||
delete n.loaded;
|
||||
delete n.err;
|
||||
delete n.file;
|
||||
delete n.id;
|
||||
@@ -230,13 +226,18 @@ var registry = (function() {
|
||||
if (module) {
|
||||
var config = module.nodes[getNode(id)];
|
||||
if (config) {
|
||||
return filterNodeInfo(config);
|
||||
var info = filterNodeInfo(config);
|
||||
if (config.hasOwnProperty("loaded")) {
|
||||
info.loaded = config.loaded;
|
||||
}
|
||||
info.version = module.version;
|
||||
return info;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
getNodeList: function() {
|
||||
getNodeList: function(filter) {
|
||||
var list = [];
|
||||
for (var module in moduleConfigs) {
|
||||
/* istanbul ignore else */
|
||||
@@ -245,7 +246,11 @@ var registry = (function() {
|
||||
for (var node in nodes) {
|
||||
/* istanbul ignore else */
|
||||
if (nodes.hasOwnProperty(node)) {
|
||||
list.push(filterNodeInfo(nodes[node]));
|
||||
var nodeInfo = filterNodeInfo(nodes[node]);
|
||||
nodeInfo.version = moduleConfigs[module].version;
|
||||
if (!filter || filter(nodes[node])) {
|
||||
list.push(nodeInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -257,16 +262,7 @@ var registry = (function() {
|
||||
for (var module in moduleNodes) {
|
||||
/* istanbul ignore else */
|
||||
if (moduleNodes.hasOwnProperty(module)) {
|
||||
var nodes = moduleNodes[module];
|
||||
var m = {
|
||||
name: module,
|
||||
version: moduleConfigs[module].version,
|
||||
nodes: []
|
||||
};
|
||||
for (var i = 0; i < nodes.length; ++i) {
|
||||
m.nodes.push(filterNodeInfo(moduleConfigs[module].nodes[nodes[i]]));
|
||||
}
|
||||
list.push(m);
|
||||
list.push(registry.getModuleInfo(module));
|
||||
}
|
||||
}
|
||||
return list;
|
||||
@@ -280,16 +276,15 @@ var registry = (function() {
|
||||
nodes: []
|
||||
};
|
||||
for (var i = 0; i < nodes.length; ++i) {
|
||||
m.nodes.push(filterNodeInfo(moduleConfigs[module].nodes[nodes[i]]));
|
||||
var nodeInfo = filterNodeInfo(moduleConfigs[module].nodes[nodes[i]]);
|
||||
nodeInfo.version = m.version;
|
||||
m.nodes.push(nodeInfo);
|
||||
}
|
||||
return m;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
getModuleVersion: function(module) {
|
||||
return moduleConfigs[module].version;
|
||||
},
|
||||
registerNodeConstructor: function(type,constructor) {
|
||||
if (nodeConstructors[type]) {
|
||||
throw new Error(type+" already registered");
|
||||
@@ -373,10 +368,6 @@ var registry = (function() {
|
||||
return nodeTypeToId[type];
|
||||
},
|
||||
|
||||
getNodeModuleInfo: function(module) {
|
||||
return moduleNodes[module];
|
||||
},
|
||||
|
||||
enableNodeSet: function(typeOrId) {
|
||||
if (!settings.available()) {
|
||||
throw new Error("Settings unavailable");
|
||||
@@ -526,7 +517,7 @@ function scanDirForNodesModules(dir,moduleName) {
|
||||
var files = fs.readdirSync(dir);
|
||||
for (var i=0;i<files.length;i++) {
|
||||
var fn = files[i];
|
||||
if (!registry.getNodeModuleInfo(fn)) {
|
||||
if (!registry.getModuleInfo(fn)) {
|
||||
if (!moduleName || fn == moduleName) {
|
||||
var pkgfn = path.join(dir,fn,"package.json");
|
||||
try {
|
||||
@@ -626,9 +617,7 @@ function loadNodesFromModule(moduleDir,pkg) {
|
||||
function loadNodeConfig(file,module,name,version) {
|
||||
var id = module + "/" + name;
|
||||
var info = registry.getNodeInfo(id);
|
||||
|
||||
var isEnabled = true;
|
||||
|
||||
if (info) {
|
||||
if (info.hasOwnProperty("loaded")) {
|
||||
throw new Error(file+" already loaded");
|
||||
@@ -819,7 +808,7 @@ function addModule(module) {
|
||||
throw new Error("Settings unavailable");
|
||||
}
|
||||
var nodes = [];
|
||||
if (registry.getNodeModuleInfo(module)) {
|
||||
if (registry.getModuleInfo(module)) {
|
||||
return when.reject(new Error("Module already loaded"));
|
||||
}
|
||||
var moduleFiles = scanTreeForNodesModules(module);
|
||||
@@ -831,7 +820,9 @@ function addModule(module) {
|
||||
moduleFiles.forEach(function(moduleFile) {
|
||||
nodes = nodes.concat(loadNodesFromModule(moduleFile.dir,moduleFile.package));
|
||||
});
|
||||
return loadNodeList(nodes);
|
||||
return loadNodeList(nodes).then(function() {
|
||||
return registry.getModuleInfo(module);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
@@ -844,11 +835,8 @@ module.exports = {
|
||||
getNodeInfo: registry.getNodeInfo,
|
||||
getNodeList: registry.getNodeList,
|
||||
|
||||
getNodeModuleInfo: registry.getNodeModuleInfo,
|
||||
|
||||
getModuleInfo: registry.getModuleInfo,
|
||||
getModuleList: registry.getModuleList,
|
||||
getModuleVersion: registry.getModuleVersion,
|
||||
|
||||
getNodeConfigs: registry.getAllNodeConfigs,
|
||||
getNodeConfig: registry.getNodeConfig,
|
||||
|
@@ -65,9 +65,8 @@ function start() {
|
||||
redNodes.init(settings,storage,app);
|
||||
redNodes.load().then(function() {
|
||||
var i;
|
||||
var nodes = redNodes.getNodeList();
|
||||
var nodeErrors = nodes.filter(function(n) { return n.err!=null;});
|
||||
var nodeMissing = nodes.filter(function(n) { return n.module && n.enabled && !n.loaded && !n.err;});
|
||||
var nodeErrors = redNodes.getNodeList(function(n) { return n.err!=null;});
|
||||
var nodeMissing = redNodes.getNodeList(function(n) { return n.module && n.enabled && !n.loaded && !n.err;});
|
||||
if (nodeErrors.length > 0) {
|
||||
log.warn("------------------------------------------");
|
||||
if (settings.verbose) {
|
||||
@@ -114,15 +113,15 @@ function start() {
|
||||
|
||||
|
||||
function reportAddedModules(info) {
|
||||
comms.publish("node/added",info,false);
|
||||
if (info.length > 0) {
|
||||
comms.publish("node/added",info.nodes,false);
|
||||
if (info.nodes.length > 0) {
|
||||
log.info("Added node types:");
|
||||
for (var i=0;i<info.length;i++) {
|
||||
for (var j=0;j<info[i].types.length;j++) {
|
||||
for (var i=0;i<info.nodes.length;i++) {
|
||||
for (var j=0;j<info.nodes[i].types.length;j++) {
|
||||
log.info(" - "+
|
||||
(info[i].module?info[i].module+":":"")+
|
||||
info[i].types[j]+
|
||||
(info[i].err?" : "+info[i].err:"")
|
||||
(info.nodes[i].module?info.nodes[i].module+":":"")+
|
||||
info.nodes[i].types[j]+
|
||||
(info.nodes[i].err?" : "+info.nodes[i].err:"")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user