mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
add support of environtment variable for tab & group
This commit is contained in:
@@ -44,24 +44,25 @@ function diffNodes(oldNode,newNode) {
|
||||
var EnvVarPropertyRE_old = /^\$\((\S+)\)$/;
|
||||
var EnvVarPropertyRE = /^\${(\S+)}$/;
|
||||
|
||||
function mapEnvVarProperties(obj,prop,flow) {
|
||||
|
||||
function mapEnvVarProperties(obj,prop,flow,config) {
|
||||
var v = obj[prop];
|
||||
if (Buffer.isBuffer(v)) {
|
||||
return;
|
||||
} else if (Array.isArray(v)) {
|
||||
for (var i=0;i<v.length;i++) {
|
||||
mapEnvVarProperties(v,i,flow);
|
||||
mapEnvVarProperties(v,i,flow,config);
|
||||
}
|
||||
} else if (typeof obj[prop] === 'string') {
|
||||
if (obj[prop][0] === "$" && (EnvVarPropertyRE_old.test(v) || EnvVarPropertyRE.test(v)) ) {
|
||||
var envVar = v.substring(2,v.length-1);
|
||||
var r = flow.getSetting(envVar);
|
||||
obj[prop] = r!==undefined?r:obj[prop];
|
||||
var r = redUtil.getSetting(config, envVar, flow);
|
||||
obj[prop] = r ? r : obj[prop];
|
||||
}
|
||||
} else {
|
||||
for (var p in v) {
|
||||
if (v.hasOwnProperty(p)) {
|
||||
mapEnvVarProperties(v,p,flow);
|
||||
mapEnvVarProperties(v,p,flow,config);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -78,7 +79,7 @@ function createNode(flow,config) {
|
||||
delete conf.credentials;
|
||||
for (var p in conf) {
|
||||
if (conf.hasOwnProperty(p)) {
|
||||
mapEnvVarProperties(conf,p,flow);
|
||||
mapEnvVarProperties(conf,p,flow,conf);
|
||||
}
|
||||
}
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user