workflow-4-node
Version:
Workflow 4 Node is a .NET Workflow Foundation like framework for Node.js. The goal is to reach feature equivalence and beyond.
43 lines (33 loc) • 885 B
JavaScript
;
let Activity = require("./activity");
let util = require("util");
let _ = require("lodash");
function Or() {
Activity.call(this);
this.isTrue = true;
this.isFalse = false;
}
util.inherits(Or, Activity);
Or.prototype.run = function (callContext, args) {
callContext.schedule(args, "_argsGot");
};
Or.prototype._argsGot = function(callContext, reason, result) {
if (reason !== Activity.states.complete) {
callContext.end(reason, result);
return;
}
let isTrue = false;
for (let v of result) {
isTrue = (v ? true : false) || isTrue;
}
if (isTrue) {
callContext.schedule(this.isTrue, "_done");
}
else {
callContext.schedule(this.isFalse, "_done");
}
};
Or.prototype._done = function(callContext, reason, result) {
callContext.end(reason, result);
};
module.exports = Or;