bpm-engine
Version:
Business Process Management Engine for JavaScript
53 lines (38 loc) • 4.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _Activity = require('./Activity');
var _Activity2 = _interopRequireDefault(_Activity);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const scriptingEngines = ['JavaScript', 'NodeJS'];
class ScriptTask extends _Activity2.default {
constructor(...args) {
var _temp, _this;
return _temp = _this = super(...args), this.makeActive = (0, _asyncToGenerator3.default)(function* () {
yield _this.callPlugins('onActive');
var _definition = _this.definition;
const scriptFormat = _definition.scriptFormat,
script = _definition.script;
if (scriptingEngines.includes(scriptFormat)) {
// TODO: ...
if (scriptFormat === 'JavaScript') {
const fn = new Function('payload', script);
fn(_this.tokenInstance.payload);
}
// TODO: ...
if (scriptFormat === 'NodeJS') {
const fn = new Function('payload', script);
fn(_this.tokenInstance.payload);
}
} else {
_this.tokenInstance.status = 'paused';
throw new Error(`Unsupported script format: ${scriptFormat}. Allowed script formats: ${scriptingEngines.join(', ')}`);
}
}), _temp;
}
}
exports.default = ScriptTask;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvRWxlbWVudHMvU2NyaXB0VGFzay5qcyJdLCJuYW1lcyI6WyJzY3JpcHRpbmdFbmdpbmVzIiwiU2NyaXB0VGFzayIsIkFjdGl2aXR5IiwibWFrZUFjdGl2ZSIsImNhbGxQbHVnaW5zIiwiZGVmaW5pdGlvbiIsInNjcmlwdEZvcm1hdCIsInNjcmlwdCIsImluY2x1ZGVzIiwiZm4iLCJGdW5jdGlvbiIsInRva2VuSW5zdGFuY2UiLCJwYXlsb2FkIiwic3RhdHVzIiwiRXJyb3IiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7OztBQUVBLE1BQU1BLG1CQUFtQixDQUFDLFlBQUQsRUFBZSxRQUFmLENBQXpCOztBQUVBLE1BQU1DLFVBQU4sU0FBeUJDLGtCQUF6QixDQUFrQztBQUFBO0FBQUE7O0FBQUEsZ0RBQ2hDQyxVQURnQyxtQ0FDbkIsYUFBWTtBQUN2QixZQUFNLE1BQUtDLFdBQUwsQ0FBaUIsVUFBakIsQ0FBTjs7QUFEdUIsd0JBR1UsTUFBS0MsVUFIZjtBQUFBLFlBR2ZDLFlBSGUsZUFHZkEsWUFIZTtBQUFBLFlBR0RDLE1BSEMsZUFHREEsTUFIQzs7O0FBS3ZCLFVBQUlQLGlCQUFpQlEsUUFBakIsQ0FBMEJGLFlBQTFCLENBQUosRUFBNkM7QUFDM0M7QUFDQSxZQUFJQSxpQkFBaUIsWUFBckIsRUFBbUM7QUFDakMsZ0JBQU1HLEtBQUssSUFBSUMsUUFBSixDQUFhLFNBQWIsRUFBd0JILE1BQXhCLENBQVg7QUFDQUUsYUFBRyxNQUFLRSxhQUFMLENBQW1CQyxPQUF0QjtBQUNEOztBQUVEO0FBQ0EsWUFBSU4saUJBQWlCLFFBQXJCLEVBQStCO0FBQzdCLGdCQUFNRyxLQUFLLElBQUlDLFFBQUosQ0FBYSxTQUFiLEVBQXdCSCxNQUF4QixDQUFYO0FBQ0FFLGFBQUcsTUFBS0UsYUFBTCxDQUFtQkMsT0FBdEI7QUFDRDtBQUNGLE9BWkQsTUFhSztBQUNILGNBQUtELGFBQUwsQ0FBbUJFLE1BQW5CLEdBQTRCLFFBQTVCO0FBQ0EsY0FBTSxJQUFJQyxLQUFKLENBQVcsOEJBQTZCUixZQUFhLDZCQUE0Qk4saUJBQWlCZSxJQUFqQixDQUFzQixJQUF0QixDQUE0QixFQUE3RyxDQUFOO0FBQ0Q7QUFDRixLQXZCK0I7QUFBQTs7QUFBQTs7a0JBMEJuQmQsVSIsImZpbGUiOiJTY3JpcHRUYXNrLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFjdGl2aXR5IGZyb20gJ2xpYi9FbGVtZW50cy9BY3Rpdml0eSc7XG5cbmNvbnN0IHNjcmlwdGluZ0VuZ2luZXMgPSBbJ0phdmFTY3JpcHQnLCAnTm9kZUpTJ107XG5cbmNsYXNzIFNjcmlwdFRhc2sgZXh0ZW5kcyBBY3Rpdml0eSB7XG4gIG1ha2VBY3RpdmUgPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgdGhpcy5jYWxsUGx1Z2lucygnb25BY3RpdmUnKTtcblxuICAgIGNvbnN0IHsgc2NyaXB0Rm9ybWF0LCBzY3JpcHQgfSA9IHRoaXMuZGVmaW5pdGlvbjtcblxuICAgIGlmIChzY3JpcHRpbmdFbmdpbmVzLmluY2x1ZGVzKHNjcmlwdEZvcm1hdCkpIHtcbiAgICAgIC8vIFRPRE86IC4uLlxuICAgICAgaWYgKHNjcmlwdEZvcm1hdCA9PT0gJ0phdmFTY3JpcHQnKSB7XG4gICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKCdwYXlsb2FkJywgc2NyaXB0KTtcbiAgICAgICAgZm4odGhpcy50b2tlbkluc3RhbmNlLnBheWxvYWQpO1xuICAgICAgfVxuXG4gICAgICAvLyBUT0RPOiAuLi5cbiAgICAgIGlmIChzY3JpcHRGb3JtYXQgPT09ICdOb2RlSlMnKSB7XG4gICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKCdwYXlsb2FkJywgc2NyaXB0KTtcbiAgICAgICAgZm4odGhpcy50b2tlbkluc3RhbmNlLnBheWxvYWQpO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudG9rZW5JbnN0YW5jZS5zdGF0dXMgPSAncGF1c2VkJztcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgc2NyaXB0IGZvcm1hdDogJHtzY3JpcHRGb3JtYXR9LiBBbGxvd2VkIHNjcmlwdCBmb3JtYXRzOiAke3NjcmlwdGluZ0VuZ2luZXMuam9pbignLCAnKX1gKTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdFRhc2s7XG4iXX0=