UNPKG

sugo-actor

Version:
86 lines (72 loc) 5.5 kB
/** * Validate modules to load * @function validateModules * @param {Object} modules * @returns {?Error} - Found errors */ 'use strict'; var _Object$keys = require("@babel/runtime/core-js/object/keys"); var _getIterator = require("@babel/runtime/core-js/get-iterator"); var _require = require('sugo-constants'), ReservedNames = _require.ReservedNames; /** @lends validateModules */ function validateModules(modules) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = _getIterator(ReservedNames.MODULE.split(',')), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _reservedModuleName = _step.value; var ng = modules.hasOwnProperty(_reservedModuleName); if (ng) { return new Error("[SUGO-Actor] You cannot use \"".concat(_reservedModuleName, "\" as a module name since it is reserved.")); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var _arr = _Object$keys(modules); for (var _i = 0; _i < _arr.length; _i++) { var moduleName = _arr[_i]; var _module = modules[moduleName]; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = _getIterator(ReservedNames.METHOD.split(',')), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _reservedMethodName = _step2.value; var _ng2 = _module.hasOwnProperty(_reservedMethodName); if (_ng2) { return new Error("[SUGO-Actor] You cannot use \"".concat(_reservedMethodName, " as a method name ( on module \"").concat(moduleName, "\") since it is reserved.")); } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } return null; } module.exports = validateModules; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpbmcvdmFsaWRhdGVfbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiUmVzZXJ2ZWROYW1lcyIsInZhbGlkYXRlTW9kdWxlcyIsIm1vZHVsZXMiLCJNT0RVTEUiLCJzcGxpdCIsInJlc2VydmVkTW9kdWxlTmFtZSIsIm5nIiwiaGFzT3duUHJvcGVydHkiLCJFcnJvciIsIm1vZHVsZU5hbWUiLCJtb2R1bGUiLCJNRVRIT0QiLCJyZXNlcnZlZE1ldGhvZE5hbWUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0FBTUE7Ozs7OztlQUUwQkEsUUFBUSxnQkFBUixDO0lBQWxCQyxhLFlBQUFBLGE7QUFFUjs7O0FBQ0EsU0FBU0MsZUFBVCxDQUEwQkMsT0FBMUIsRUFBbUM7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFDakMsc0NBQStCRixjQUFjRyxNQUFkLENBQXFCQyxLQUFyQixDQUEyQixHQUEzQixDQUEvQiw0R0FBZ0U7QUFBQSxVQUF2REMsbUJBQXVEO0FBQzlELFVBQUlDLEtBQUtKLFFBQVFLLGNBQVIsQ0FBdUJGLG1CQUF2QixDQUFUOztBQUNBLFVBQUlDLEVBQUosRUFBUTtBQUNOLGVBQU8sSUFBSUUsS0FBSix5Q0FBMENILG1CQUExQywrQ0FBUDtBQUNEO0FBQ0Y7QUFOZ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQSxhQU9WLGFBQVlILE9BQVosQ0FQVTs7QUFPakMsMkNBQTZDO0FBQXhDLFFBQUlPLHFCQUFKO0FBQ0gsUUFBSUMsVUFBU1IsUUFBU08sVUFBVCxDQUFiO0FBRDJDO0FBQUE7QUFBQTs7QUFBQTtBQUUzQyx5Q0FBK0JULGNBQWNXLE1BQWQsQ0FBcUJQLEtBQXJCLENBQTJCLEdBQTNCLENBQS9CLGlIQUFnRTtBQUFBLFlBQXZEUSxtQkFBdUQ7O0FBQzlELFlBQUlOLE9BQUtJLFFBQU9ILGNBQVAsQ0FBc0JLLG1CQUF0QixDQUFUOztBQUNBLFlBQUlOLElBQUosRUFBUTtBQUNOLGlCQUFPLElBQUlFLEtBQUoseUNBQTBDSSxtQkFBMUMsNkNBQThGSCxVQUE5RiwrQkFBUDtBQUNEO0FBQ0Y7QUFQMEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVE1Qzs7QUFDRCxTQUFPLElBQVA7QUFDRDs7QUFFREMsT0FBT0csT0FBUCxHQUFpQlosZUFBakIiLCJmaWxlIjoidmFsaWRhdGluZy92YWxpZGF0ZV9tb2R1bGVzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmFsaWRhdGUgbW9kdWxlcyB0byBsb2FkXG4gKiBAZnVuY3Rpb24gdmFsaWRhdGVNb2R1bGVzXG4gKiBAcGFyYW0ge09iamVjdH0gbW9kdWxlc1xuICogQHJldHVybnMgez9FcnJvcn0gLSBGb3VuZCBlcnJvcnNcbiAqL1xuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsgUmVzZXJ2ZWROYW1lcyB9ID0gcmVxdWlyZSgnc3Vnby1jb25zdGFudHMnKVxuXG4vKiogQGxlbmRzIHZhbGlkYXRlTW9kdWxlcyAqL1xuZnVuY3Rpb24gdmFsaWRhdGVNb2R1bGVzIChtb2R1bGVzKSB7XG4gIGZvciAobGV0IHJlc2VydmVkTW9kdWxlTmFtZSBvZiBSZXNlcnZlZE5hbWVzLk1PRFVMRS5zcGxpdCgnLCcpKSB7XG4gICAgbGV0IG5nID0gbW9kdWxlcy5oYXNPd25Qcm9wZXJ0eShyZXNlcnZlZE1vZHVsZU5hbWUpXG4gICAgaWYgKG5nKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yKGBbU1VHTy1BY3Rvcl0gWW91IGNhbm5vdCB1c2UgXCIke3Jlc2VydmVkTW9kdWxlTmFtZX1cIiBhcyBhIG1vZHVsZSBuYW1lIHNpbmNlIGl0IGlzIHJlc2VydmVkLmApXG4gICAgfVxuICB9XG4gIGZvciAobGV0IG1vZHVsZU5hbWUgb2YgT2JqZWN0LmtleXMobW9kdWxlcykpIHtcbiAgICBsZXQgbW9kdWxlID0gbW9kdWxlc1sgbW9kdWxlTmFtZSBdXG4gICAgZm9yIChsZXQgcmVzZXJ2ZWRNZXRob2ROYW1lIG9mIFJlc2VydmVkTmFtZXMuTUVUSE9ELnNwbGl0KCcsJykpIHtcbiAgICAgIGxldCBuZyA9IG1vZHVsZS5oYXNPd25Qcm9wZXJ0eShyZXNlcnZlZE1ldGhvZE5hbWUpXG4gICAgICBpZiAobmcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihgW1NVR08tQWN0b3JdIFlvdSBjYW5ub3QgdXNlIFwiJHtyZXNlcnZlZE1ldGhvZE5hbWV9IGFzIGEgbWV0aG9kIG5hbWUgKCBvbiBtb2R1bGUgXCIke21vZHVsZU5hbWV9XCIpIHNpbmNlIGl0IGlzIHJlc2VydmVkLmApXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmFsaWRhdGVNb2R1bGVzXG4iXX0=