sugo-actor
Version:
Actor component of SUGOS.
86 lines (72 loc) • 5.5 kB
JavaScript
/**
* Validate modules to load
* @function validateModules
* @param {Object} modules
* @returns {?Error} - Found errors
*/
;
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=