fixed comments from @knolleary

This commit is contained in:
Hiroyasu Nishiyama
2019-01-28 22:14:08 +09:00
parent 2b43e3ee23
commit f88a4b1791
8 changed files with 76 additions and 97 deletions

View File

@@ -239,22 +239,6 @@ Node.prototype.receive = function(msg) {
}
};
Node.prototype.getenv = function(name) {
var flow = this._flow;
if (flow) {
var val = flow.getSetting(name);
return val;
}
return undefined;
};
Node.prototype.setenv = function(name, val) {
var flow = this._flow;
if (flow) {
flow.setSetting(name, val);
}
};
function log_helper(self, level, msg) {
var o = {
level: level,

View File

@@ -462,9 +462,6 @@ class Flow {
console.log("==================")
}
getenv(name) {
return process.env[name];
}
}
/**

View File

@@ -23,34 +23,6 @@ const flowUtil = require("./util");
var Log;
/**
* Convert env var definition of subflow template and instance to env var dic
* @param {Hash} env1 env var definition of template
* @param {Hash} env2 env var definition of instance
* @return {Hash} env var dic
*/
function env2Dic(env0, env1) {
var dic = {};
function add(env) {
for(var i = 0; i < env.length; i++) {
var item = env[i];
var name = item.name;
var info = Object.assign({}, item.info);
info.name = name;
dic[name] = item;
dic[name+"_type"] = { value: item.type };
dic[name+"_info"] = { value: info };
}
}
if (env0) {
add(env0);
}
if (env1) {
add(env1);
}
return dic;
}
/**
* This class represents a subflow - which is handled as a special type of Flow
*/
@@ -133,14 +105,12 @@ class Subflow extends Flow {
var self = this;
// Create a subflow node to accept inbound messages and route appropriately
var Node = require("../Node");
var env = env2Dic(this.subflowDef.env, this.subflowInstance.env);
var subflowInstanceConfig = {
id: this.subflowInstance.id,
type: this.subflowInstance.type,
z: this.subflowInstance.z,
name: this.subflowInstance.name,
wires: [],
env: env,
_flow: this
}
if (this.subflowDef.in) {
@@ -229,11 +199,63 @@ class Subflow extends Flow {
* @return {Object} val value of env var
*/
getSetting(name) {
function lookup(env, name) {
for(var i = 0; i < env.length; i++) {
var item = env[i];
if (item.name === name) {
return item;
}
}
return null;
}
function lookupFlow0(env, name) {
if (flow.subflowInstance) {
var vi = lookup(flow.subflowInstance.env, name);
if (vi) {
return vi;
}
}
if (flow.subflowDef) {
var vt = lookup(flow.subflowDef.env, name);
if (vt) {
return vt;
}
}
return null;
}
function lookupFlow(env, name) {
if (name.endsWith("_type")) {
var vname = name.substring(0, 5); // len("_type")==5
var val = lookupFlow0(env, vname);
if (val) {
return val.type;
}
}
else if (name.endsWith("_info")) {
var vname = name.substring(0, 5); // len("_info")==5
var val = lookupFlow0(env, vname);
if (val) {
return val.info;
}
}
else {
var val = lookupFlow0(env, name);
if (val) {
return val.value;
}
}
return null;
}
var node = this.node;
if (node) {
var env = node.env;
if (env && env.hasOwnProperty(name)) {
return env[name].value;
var flow = node._flow;
if (flow) {
var v = lookupFlow(flow, name);
if (v) {
return v;
}
}
}
var parent = this.parent;