bpm-engine
Version:
Business Process Management Engine for JavaScript
66 lines (48 loc) • 5.42 kB
JavaScript
;
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