UNPKG

bpm-engine

Version:

Business Process Management Engine for JavaScript

66 lines (48 loc) 5.42 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _debug = require('./debug'); var _debug2 = _interopRequireDefault(_debug); var _Plugins = require('./Plugins'); var _Plugins2 = _interopRequireDefault(_Plugins); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const Element = _Plugins2.default.Element, UserTask = _Plugins2.default.UserTask, ServiceTask = _Plugins2.default.ServiceTask; const log = (0, _debug2.default)('plugin'); const scopePlugins = plugins => { const scopedPlugins = { userTask: {}, serviceTask: {}, element: {} }; (0, _keys2.default)(plugins).forEach(key => { if (plugins[key] instanceof Element) { scopedPlugins.element[key] = plugins[key]; } if (plugins[key] instanceof UserTask) { scopedPlugins.userTask[key] = plugins[key]; } if (plugins[key] instanceof ServiceTask) { scopedPlugins.serviceTask[key] = plugins[key]; } }); return scopedPlugins; }; exports.default = plugins => scopePlugins(plugins.map(plugin => { /* istanbul ignore next */ if (typeof plugin === 'string') { log(`Plugin "${plugin}" will be required or searched on the global window`); const PluginConstructor = typeof window === 'undefined' ? require(`bpm-engine-plugin-${plugin}`) : window.BPMEngine.Plugins[plugin]; if (!PluginConstructor) { throw new Error(`Unable to load plugin "${plugin}"`); } log(`Instantiating plugin "${plugin}"`); return new PluginConstructor(); } return plugin; })); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbG9hZFBsdWdpbnMuanMiXSwibmFtZXMiOlsiRWxlbWVudCIsIlBsdWdpbnMiLCJVc2VyVGFzayIsIlNlcnZpY2VUYXNrIiwibG9nIiwic2NvcGVQbHVnaW5zIiwicGx1Z2lucyIsInNjb3BlZFBsdWdpbnMiLCJ1c2VyVGFzayIsInNlcnZpY2VUYXNrIiwiZWxlbWVudCIsImZvckVhY2giLCJrZXkiLCJtYXAiLCJwbHVnaW4iLCJQbHVnaW5Db25zdHJ1Y3RvciIsIndpbmRvdyIsInJlcXVpcmUiLCJCUE1FbmdpbmUiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7OztNQUVRQSxPLEdBQW1DQyxpQixDQUFuQ0QsTztNQUFTRSxRLEdBQTBCRCxpQixDQUExQkMsUTtNQUFVQyxXLEdBQWdCRixpQixDQUFoQkUsVzs7O0FBRTNCLE1BQU1DLE1BQU0scUJBQU0sUUFBTixDQUFaOztBQUVBLE1BQU1DLGVBQWdCQyxPQUFELElBQWE7QUFDaEMsUUFBTUMsZ0JBQWdCO0FBQ3BCQyxjQUFVLEVBRFU7QUFFcEJDLGlCQUFhLEVBRk87QUFHcEJDLGFBQVM7QUFIVyxHQUF0Qjs7QUFNQSxzQkFBWUosT0FBWixFQUFxQkssT0FBckIsQ0FBOEJDLEdBQUQsSUFBUztBQUNwQyxRQUFJTixRQUFRTSxHQUFSLGFBQXdCWixPQUE1QixFQUFxQztBQUNuQ08sb0JBQWNHLE9BQWQsQ0FBc0JFLEdBQXRCLElBQTZCTixRQUFRTSxHQUFSLENBQTdCO0FBQ0Q7QUFDRCxRQUFJTixRQUFRTSxHQUFSLGFBQXdCVixRQUE1QixFQUFzQztBQUNwQ0ssb0JBQWNDLFFBQWQsQ0FBdUJJLEdBQXZCLElBQThCTixRQUFRTSxHQUFSLENBQTlCO0FBQ0Q7QUFDRCxRQUFJTixRQUFRTSxHQUFSLGFBQXdCVCxXQUE1QixFQUF5QztBQUN2Q0ksb0JBQWNFLFdBQWQsQ0FBMEJHLEdBQTFCLElBQWlDTixRQUFRTSxHQUFSLENBQWpDO0FBQ0Q7QUFDRixHQVZEOztBQVlBLFNBQU9MLGFBQVA7QUFDRCxDQXBCRDs7a0JBc0JlRCxXQUNiRCxhQUFhQyxRQUFRTyxHQUFSLENBQWFDLE1BQUQsSUFBWTtBQUNuQztBQUNBLE1BQUksT0FBT0EsTUFBUCxLQUFrQixRQUF0QixFQUFnQztBQUM5QlYsUUFBSyxXQUFVVSxNQUFPLHFEQUF0QjtBQUNBLFVBQU1DLG9CQUNGLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsR0FDSUMsUUFBUyxxQkFBb0JILE1BQU8sRUFBcEMsQ0FESixHQUVJRSxPQUFPRSxTQUFQLENBQWlCakIsT0FBakIsQ0FBeUJhLE1BQXpCLENBSFI7O0FBS0EsUUFBSSxDQUFDQyxpQkFBTCxFQUF3QjtBQUN0QixZQUFNLElBQUlJLEtBQUosQ0FBVywwQkFBeUJMLE1BQU8sR0FBM0MsQ0FBTjtBQUNEOztBQUVEVixRQUFLLHlCQUF3QlUsTUFBTyxHQUFwQztBQUNBLFdBQU8sSUFBSUMsaUJBQUosRUFBUDtBQUNEOztBQUVELFNBQU9ELE1BQVA7QUFDRCxDQWxCWSxDQUFiLEMiLCJmaWxlIjoibG9hZFBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVidWcgZnJvbSAnbGliL2RlYnVnJztcbmltcG9ydCBQbHVnaW5zIGZyb20gJ2xpYi9QbHVnaW5zJztcblxuY29uc3QgeyBFbGVtZW50LCBVc2VyVGFzaywgU2VydmljZVRhc2sgfSA9IFBsdWdpbnM7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwbHVnaW4nKTtcblxuY29uc3Qgc2NvcGVQbHVnaW5zID0gKHBsdWdpbnMpID0+IHtcbiAgY29uc3Qgc2NvcGVkUGx1Z2lucyA9IHtcbiAgICB1c2VyVGFzazoge30sXG4gICAgc2VydmljZVRhc2s6IHt9LFxuICAgIGVsZW1lbnQ6IHt9LFxuICB9O1xuXG4gIE9iamVjdC5rZXlzKHBsdWdpbnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmIChwbHVnaW5zW2tleV0gaW5zdGFuY2VvZiBFbGVtZW50KSB7XG4gICAgICBzY29wZWRQbHVnaW5zLmVsZW1lbnRba2V5XSA9IHBsdWdpbnNba2V5XTtcbiAgICB9XG4gICAgaWYgKHBsdWdpbnNba2V5XSBpbnN0YW5jZW9mIFVzZXJUYXNrKSB7XG4gICAgICBzY29wZWRQbHVnaW5zLnVzZXJUYXNrW2tleV0gPSBwbHVnaW5zW2tleV07XG4gICAgfVxuICAgIGlmIChwbHVnaW5zW2tleV0gaW5zdGFuY2VvZiBTZXJ2aWNlVGFzaykge1xuICAgICAgc2NvcGVkUGx1Z2lucy5zZXJ2aWNlVGFza1trZXldID0gcGx1Z2luc1trZXldO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHNjb3BlZFBsdWdpbnM7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBwbHVnaW5zID0+XG4gIHNjb3BlUGx1Z2lucyhwbHVnaW5zLm1hcCgocGx1Z2luKSA9PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodHlwZW9mIHBsdWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxvZyhgUGx1Z2luIFwiJHtwbHVnaW59XCIgd2lsbCBiZSByZXF1aXJlZCBvciBzZWFyY2hlZCBvbiB0aGUgZ2xvYmFsIHdpbmRvd2ApO1xuICAgICAgY29uc3QgUGx1Z2luQ29uc3RydWN0b3IgPVxuICAgICAgICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICA/IHJlcXVpcmUoYGJwbS1lbmdpbmUtcGx1Z2luLSR7cGx1Z2lufWApXG4gICAgICAgICAgICA6IHdpbmRvdy5CUE1FbmdpbmUuUGx1Z2luc1twbHVnaW5dO1xuXG4gICAgICBpZiAoIVBsdWdpbkNvbnN0cnVjdG9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxvYWQgcGx1Z2luIFwiJHtwbHVnaW59XCJgKTtcbiAgICAgIH1cblxuICAgICAgbG9nKGBJbnN0YW50aWF0aW5nIHBsdWdpbiBcIiR7cGx1Z2lufVwiYCk7XG4gICAgICByZXR1cm4gbmV3IFBsdWdpbkNvbnN0cnVjdG9yKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBsdWdpbjtcbiAgfSkpO1xuIl19