bpmn-elements
Version:
Executable workflow elements based on BPMN 2.0
33 lines (32 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TaskBehaviour = TaskBehaviour;
exports.default = Task;
var _Activity = _interopRequireDefault(require("../activity/Activity.js"));
var _messageHelper = require("../messageHelper.js");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function Task(activityDef, context) {
return new _Activity.default(TaskBehaviour, activityDef, context);
}
function TaskBehaviour(activity) {
const {
id,
type,
behaviour,
broker
} = activity;
this.id = id;
this.type = type;
this.loopCharacteristics = behaviour.loopCharacteristics && new behaviour.loopCharacteristics.Behaviour(activity, behaviour.loopCharacteristics);
this.broker = broker;
}
TaskBehaviour.prototype.execute = function execute(executeMessage) {
const executeContent = executeMessage.content;
const loopCharacteristics = this.loopCharacteristics;
if (loopCharacteristics && executeContent.isRootScope) {
return loopCharacteristics.execute(executeMessage);
}
return this.broker.publish('execution', 'execute.completed', (0, _messageHelper.cloneContent)(executeContent));
};