Finalise nodeSettings and update tlsConfigDisableLocalFiles

- increase test coverage around registerType
This commit is contained in:
Nick O'Leary
2017-03-09 21:06:49 +00:00
parent f45a2643f2
commit 5356373681
6 changed files with 225 additions and 142 deletions

View File

@@ -24,7 +24,7 @@ var flows = require("./flows");
var flowUtil = require("./flows/util")
var context = require("./context");
var Node = require("./Node");
var log = require("../log");
var log = null;
var library = require("./library");
var events = require("../events");
@@ -55,7 +55,11 @@ function registerType(nodeSet,type,constructor,opts) {
credentials.register(type,opts.credentials);
}
if (opts.settings) {
settings.registerNodeSettings(type,opts.settings);
try {
settings.registerNodeSettings(type,opts.settings);
} catch(err) {
log.warn("["+type+"] "+err.message);
}
}
}
registry.registerType(nodeSet,type,constructor);
@@ -90,6 +94,7 @@ function createNode(node,def) {
function init(runtime) {
settings = runtime.settings;
log = runtime.log;
credentials.init(runtime);
flows.init(runtime);
registry.init(runtime);

View File

@@ -106,19 +106,15 @@ var persistentSettings = {
storage = null;
},
registerNodeSettings: function(type, opts) {
try {
for (var property in opts) {
if (opts.hasOwnProperty(property)) {
var normalisedType = util.normaliseNodeTypeName(type);
if (!property.startsWith(normalisedType)) {
throw new Error("The name of node setting property " + property + " must start with \"" + normalisedType + "\" (case sensitive).");
}
var normalisedType = util.normaliseNodeTypeName(type);
for (var property in opts) {
if (opts.hasOwnProperty(property)) {
if (!property.startsWith(normalisedType)) {
throw new Error("Registered invalid property name '"+property+"'. Properties for this node must start with '"+normalisedType+"'");
}
}
nodeSettings[type] = opts;
} catch (err) {
console.log(err.toString());
}
nodeSettings[type] = opts;
},
exportNodeSettings: function(safeSettings) {
safeSettings["nodeSettings"] = {};
@@ -131,7 +127,7 @@ var persistentSettings = {
if (setting.exportable) {
if (userSettings.hasOwnProperty(property)) {
safeSettings["nodeSettings"][property] = userSettings[property];
} else {
} else if (setting.hasOwnProperty('value')) {
safeSettings["nodeSettings"][property] = setting.value;
}
}