UNPKG

bpm-engine

Version:

Business Process Management Engine for JavaScript

64 lines (50 loc) 5.75 kB
'use strict'; 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