UNPKG

bpm-engine

Version:

Business Process Management Engine for JavaScript

95 lines (70 loc) 5.71 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _getIterator2 = require('babel-runtime/core-js/get-iterator'); var _getIterator3 = _interopRequireDefault(_getIterator2); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _Gateway = require('./Gateway'); var _Gateway2 = _interopRequireDefault(_Gateway); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class ExclusiveGateway extends _Gateway2.default { constructor(...args) { var _temp, _this; return _temp = _this = super(...args), this.makeActive = (0, _asyncToGenerator3.default)(function* () { const outgoing = _this.definition.outgoing; const payload = _this.tokenInstance.payload; yield _this.callPlugins('onActive'); const next = []; if (outgoing.length > 1) { // eslint-disable-next-line var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(outgoing), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { const path = _step.value; if (path.conditionExpression) { const conditionExpression = path.conditionExpression; // eslint-disable-next-line (yield _this.evalCondition(conditionExpression.body, payload)) && next.push(path); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } else { var _outgoing = (0, _slicedToArray3.default)(outgoing, 1); _this.next = _outgoing[0]; return; } if (next.length > 1) { return; } if (next.length === 1) { _this.next = next[0]; } if (!next.length) { if (_this.definition.default) { _this.next = _this.definition.default; } } }), _temp; } } exports.default = ExclusiveGateway; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvRWxlbWVudHMvRXhjbHVzaXZlR2F0ZXdheS5qcyJdLCJuYW1lcyI6WyJFeGNsdXNpdmVHYXRld2F5IiwiR2F0ZXdheSIsIm1ha2VBY3RpdmUiLCJvdXRnb2luZyIsImRlZmluaXRpb24iLCJwYXlsb2FkIiwidG9rZW5JbnN0YW5jZSIsImNhbGxQbHVnaW5zIiwibmV4dCIsImxlbmd0aCIsInBhdGgiLCJjb25kaXRpb25FeHByZXNzaW9uIiwiZXZhbENvbmRpdGlvbiIsImJvZHkiLCJwdXNoIiwiZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7OztBQUVlLE1BQU1BLGdCQUFOLFNBQStCQyxpQkFBL0IsQ0FBdUM7QUFBQTtBQUFBOztBQUFBLGdEQUNwREMsVUFEb0QsbUNBQ3ZDLGFBQVk7QUFBQSxZQUNmQyxRQURlLEdBQ0YsTUFBS0MsVUFESCxDQUNmRCxRQURlO0FBQUEsWUFFZkUsT0FGZSxHQUVILE1BQUtDLGFBRkYsQ0FFZkQsT0FGZTs7O0FBSXZCLFlBQU0sTUFBS0UsV0FBTCxDQUFpQixVQUFqQixDQUFOOztBQUVBLFlBQU1DLE9BQU8sRUFBYjs7QUFFQSxVQUFJTCxTQUFTTSxNQUFULEdBQWtCLENBQXRCLEVBQXlCO0FBQ3ZCO0FBRHVCO0FBQUE7QUFBQTs7QUFBQTtBQUV2QiwwREFBbUJOLFFBQW5CLDRHQUE2QjtBQUFBLGtCQUFsQk8sSUFBa0I7O0FBQzNCLGdCQUFJQSxLQUFLQyxtQkFBVCxFQUE4QjtBQUFBLG9CQUNwQkEsbUJBRG9CLEdBQ0lELElBREosQ0FDcEJDLG1CQURvQjtBQUU1Qjs7QUFDQSxlQUFDLE1BQU0sTUFBS0MsYUFBTCxDQUFtQkQsb0JBQW9CRSxJQUF2QyxFQUE2Q1IsT0FBN0MsQ0FBUCxLQUFpRUcsS0FBS00sSUFBTCxDQUFVSixJQUFWLENBQWpFO0FBQ0Q7QUFDRjtBQVJzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU3hCLE9BVEQsTUFVSztBQUFBLHFEQUNXUCxRQURYOztBQUNGLGNBQUtLLElBREg7O0FBRUg7QUFDRDs7QUFFRCxVQUFJQSxLQUFLQyxNQUFMLEdBQWMsQ0FBbEIsRUFBcUI7QUFDbkI7QUFDRDs7QUFFRCxVQUFJRCxLQUFLQyxNQUFMLEtBQWdCLENBQXBCLEVBQXVCO0FBQ3BCLGNBQUtELElBRGUsR0FDUEEsSUFETztBQUV0Qjs7QUFFRCxVQUFJLENBQUNBLEtBQUtDLE1BQVYsRUFBa0I7QUFDaEIsWUFBSSxNQUFLTCxVQUFMLENBQWdCVyxPQUFwQixFQUE2QjtBQUMzQixnQkFBS1AsSUFBTCxHQUFZLE1BQUtKLFVBQUwsQ0FBZ0JXLE9BQTVCO0FBQ0Q7QUFDRjtBQUNGLEtBckNtRDtBQUFBOztBQUFBO2tCQUFqQ2YsZ0IiLCJmaWxlIjoiRXhjbHVzaXZlR2F0ZXdheS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBHYXRld2F5IGZyb20gJ2xpYi9FbGVtZW50cy9HYXRld2F5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhjbHVzaXZlR2F0ZXdheSBleHRlbmRzIEdhdGV3YXkge1xuICBtYWtlQWN0aXZlID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgb3V0Z29pbmcgfSA9IHRoaXMuZGVmaW5pdGlvbjtcbiAgICBjb25zdCB7IHBheWxvYWQgfSA9IHRoaXMudG9rZW5JbnN0YW5jZTtcblxuICAgIGF3YWl0IHRoaXMuY2FsbFBsdWdpbnMoJ29uQWN0aXZlJyk7XG5cbiAgICBjb25zdCBuZXh0ID0gW107XG5cbiAgICBpZiAob3V0Z29pbmcubGVuZ3RoID4gMSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2Ygb3V0Z29pbmcpIHtcbiAgICAgICAgaWYgKHBhdGguY29uZGl0aW9uRXhwcmVzc2lvbikge1xuICAgICAgICAgIGNvbnN0IHsgY29uZGl0aW9uRXhwcmVzc2lvbiB9ID0gcGF0aDtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAoYXdhaXQgdGhpcy5ldmFsQ29uZGl0aW9uKGNvbmRpdGlvbkV4cHJlc3Npb24uYm9keSwgcGF5bG9hZCkpICYmIG5leHQucHVzaChwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIFt0aGlzLm5leHRdID0gb3V0Z29pbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5leHQubGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChuZXh0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgW3RoaXMubmV4dF0gPSBuZXh0O1xuICAgIH1cblxuICAgIGlmICghbmV4dC5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLmRlZmluaXRpb24uZGVmYXVsdCkge1xuICAgICAgICB0aGlzLm5leHQgPSB0aGlzLmRlZmluaXRpb24uZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4iXX0=