bpm-engine
Version:
Business Process Management Engine for JavaScript
64 lines (50 loc) • 5.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _Event = require('./Event');
var _Event2 = _interopRequireDefault(_Event);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class EndEvent extends _Event2.default {
constructor(...args) {
var _temp, _this;
return _temp = _this = super(...args), this.makeComplete = (0, _asyncToGenerator3.default)(function* () {
_this.tokenInstance.status = 'ended';
yield _this.callPlugins('onComplete');
yield _this.tokenInstance.persistUpdate();
// if this end-event is inside a sub process, continue with the outer flow
if (_this.tokenInstance.parent && _this.tokenInstance.isSubProcess) {
const parentToken = yield _this.persist.tokenInstance.update({
tokenId: _this.tokenInstance.parent
}, {
$pull: { childs: _this.tokenInstance.tokenId }
});
// continue with parent token
const cleanPayload = _this.tokenInstance.payload;
delete cleanPayload._;
if (parentToken.childs.length === 0) {
const ti = yield _this.engine.continueTokenInstance({
tokenId: parentToken.tokenId,
payload: cleanPayload,
parent: parentToken.parent,
processId: _this.tokenInstance.processId,
isSubProcess: parentToken.isSubProcess
});
return ti.execute();
}
} else {
yield _this.persist.processInstance.update({
processId: _this.tokenInstance.processId
}, {
$set: {
status: 'ended'
}
});
}
}), _temp;
}
}
exports.default = EndEvent;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvRWxlbWVudHMvRW5kRXZlbnQuanMiXSwibmFtZXMiOlsiRW5kRXZlbnQiLCJFdmVudCIsIm1ha2VDb21wbGV0ZSIsInRva2VuSW5zdGFuY2UiLCJzdGF0dXMiLCJjYWxsUGx1Z2lucyIsInBlcnNpc3RVcGRhdGUiLCJwYXJlbnQiLCJpc1N1YlByb2Nlc3MiLCJwYXJlbnRUb2tlbiIsInBlcnNpc3QiLCJ1cGRhdGUiLCJ0b2tlbklkIiwiJHB1bGwiLCJjaGlsZHMiLCJjbGVhblBheWxvYWQiLCJwYXlsb2FkIiwiXyIsImxlbmd0aCIsInRpIiwiZW5naW5lIiwiY29udGludWVUb2tlbkluc3RhbmNlIiwicHJvY2Vzc0lkIiwiZXhlY3V0ZSIsInByb2Nlc3NJbnN0YW5jZSIsIiRzZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7Ozs7O0FBRWUsTUFBTUEsUUFBTixTQUF1QkMsZUFBdkIsQ0FBNkI7QUFBQTtBQUFBOztBQUFBLGdEQUMxQ0MsWUFEMEMsbUNBQzNCLGFBQVk7QUFDekIsWUFBS0MsYUFBTCxDQUFtQkMsTUFBbkIsR0FBNEIsT0FBNUI7QUFDQSxZQUFNLE1BQUtDLFdBQUwsQ0FBaUIsWUFBakIsQ0FBTjs7QUFFQSxZQUFNLE1BQUtGLGFBQUwsQ0FBbUJHLGFBQW5CLEVBQU47O0FBRUE7QUFDQSxVQUFJLE1BQUtILGFBQUwsQ0FBbUJJLE1BQW5CLElBQTZCLE1BQUtKLGFBQUwsQ0FBbUJLLFlBQXBELEVBQWtFO0FBQ2hFLGNBQU1DLGNBQWMsTUFBTSxNQUFLQyxPQUFMLENBQWFQLGFBQWIsQ0FBMkJRLE1BQTNCLENBQ3hCO0FBQ0VDLG1CQUFTLE1BQUtULGFBQUwsQ0FBbUJJO0FBRDlCLFNBRHdCLEVBSXhCO0FBQ0VNLGlCQUFPLEVBQUVDLFFBQVEsTUFBS1gsYUFBTCxDQUFtQlMsT0FBN0I7QUFEVCxTQUp3QixDQUExQjs7QUFTQTtBQUNBLGNBQU1HLGVBQWUsTUFBS1osYUFBTCxDQUFtQmEsT0FBeEM7QUFDQSxlQUFPRCxhQUFhRSxDQUFwQjs7QUFFQSxZQUFJUixZQUFZSyxNQUFaLENBQW1CSSxNQUFuQixLQUE4QixDQUFsQyxFQUFxQztBQUNuQyxnQkFBTUMsS0FBSyxNQUFNLE1BQUtDLE1BQUwsQ0FBWUMscUJBQVosQ0FBa0M7QUFDakRULHFCQUFTSCxZQUFZRyxPQUQ0QjtBQUVqREkscUJBQVNELFlBRndDO0FBR2pEUixvQkFBUUUsWUFBWUYsTUFINkI7QUFJakRlLHVCQUFXLE1BQUtuQixhQUFMLENBQW1CbUIsU0FKbUI7QUFLakRkLDBCQUFjQyxZQUFZRDtBQUx1QixXQUFsQyxDQUFqQjs7QUFRQSxpQkFBT1csR0FBR0ksT0FBSCxFQUFQO0FBQ0Q7QUFDRixPQXpCRCxNQTBCSztBQUNILGNBQU0sTUFBS2IsT0FBTCxDQUFhYyxlQUFiLENBQTZCYixNQUE3QixDQUNKO0FBQ0VXLHFCQUFXLE1BQUtuQixhQUFMLENBQW1CbUI7QUFEaEMsU0FESSxFQUlKO0FBQ0VHLGdCQUFNO0FBQ0pyQixvQkFBUTtBQURKO0FBRFIsU0FKSSxDQUFOO0FBVUQ7QUFDRixLQTlDeUM7QUFBQTs7QUFBQTtrQkFBdkJKLFEiLCJmaWxlIjoiRW5kRXZlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXZlbnQgZnJvbSAnbGliL0VsZW1lbnRzL0V2ZW50JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW5kRXZlbnQgZXh0ZW5kcyBFdmVudCB7XG4gIG1ha2VDb21wbGV0ZSA9IGFzeW5jICgpID0+IHtcbiAgICB0aGlzLnRva2VuSW5zdGFuY2Uuc3RhdHVzID0gJ2VuZGVkJztcbiAgICBhd2FpdCB0aGlzLmNhbGxQbHVnaW5zKCdvbkNvbXBsZXRlJyk7XG5cbiAgICBhd2FpdCB0aGlzLnRva2VuSW5zdGFuY2UucGVyc2lzdFVwZGF0ZSgpO1xuXG4gICAgLy8gaWYgdGhpcyBlbmQtZXZlbnQgaXMgaW5zaWRlIGEgc3ViIHByb2Nlc3MsIGNvbnRpbnVlIHdpdGggdGhlIG91dGVyIGZsb3dcbiAgICBpZiAodGhpcy50b2tlbkluc3RhbmNlLnBhcmVudCAmJiB0aGlzLnRva2VuSW5zdGFuY2UuaXNTdWJQcm9jZXNzKSB7XG4gICAgICBjb25zdCBwYXJlbnRUb2tlbiA9IGF3YWl0IHRoaXMucGVyc2lzdC50b2tlbkluc3RhbmNlLnVwZGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuSWQ6IHRoaXMudG9rZW5JbnN0YW5jZS5wYXJlbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAkcHVsbDogeyBjaGlsZHM6IHRoaXMudG9rZW5JbnN0YW5jZS50b2tlbklkIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICAvLyBjb250aW51ZSB3aXRoIHBhcmVudCB0b2tlblxuICAgICAgY29uc3QgY2xlYW5QYXlsb2FkID0gdGhpcy50b2tlbkluc3RhbmNlLnBheWxvYWQ7XG4gICAgICBkZWxldGUgY2xlYW5QYXlsb2FkLl87XG5cbiAgICAgIGlmIChwYXJlbnRUb2tlbi5jaGlsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IHRpID0gYXdhaXQgdGhpcy5lbmdpbmUuY29udGludWVUb2tlbkluc3RhbmNlKHtcbiAgICAgICAgICB0b2tlbklkOiBwYXJlbnRUb2tlbi50b2tlbklkLFxuICAgICAgICAgIHBheWxvYWQ6IGNsZWFuUGF5bG9hZCxcbiAgICAgICAgICBwYXJlbnQ6IHBhcmVudFRva2VuLnBhcmVudCxcbiAgICAgICAgICBwcm9jZXNzSWQ6IHRoaXMudG9rZW5JbnN0YW5jZS5wcm9jZXNzSWQsXG4gICAgICAgICAgaXNTdWJQcm9jZXNzOiBwYXJlbnRUb2tlbi5pc1N1YlByb2Nlc3MsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aS5leGVjdXRlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5wZXJzaXN0LnByb2Nlc3NJbnN0YW5jZS51cGRhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9jZXNzSWQ6IHRoaXMudG9rZW5JbnN0YW5jZS5wcm9jZXNzSWQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgICBzdGF0dXM6ICdlbmRlZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9O1xufVxuIl19