UNPKG

sugo-hub

Version:
176 lines (146 loc) 9.16 kB
/** * Browser side agent for spot * @function agent */ 'use strict'; var _Object$assign = require("@babel/runtime/core-js/object/assign"); var _getIterator = require("@babel/runtime/core-js/get-iterator"); var _regeneratorRuntime = require("@babel/runtime/regenerator"); var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator"); var _classCallCheck = require("@babel/runtime/helpers/classCallCheck"); var _createClass = require("@babel/runtime/helpers/createClass"); var brequest = require('brequest'); var _require = require('sugo-constants'), HubUrls = _require.HubUrls; var ACTOR_URL = HubUrls.ACTOR_URL, CALLER_URL = HubUrls.CALLER_URL, OBSERVER_URL = HubUrls.OBSERVER_URL; var SugoCloudAgent = /*#__PURE__*/ function () { function SugoCloudAgent() { var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; _classCallCheck(this, SugoCloudAgent); this.baseUrl = url; } _createClass(SugoCloudAgent, [{ key: "get", value: function get(path, query) { var url = this.baseUrl ? this.baseUrl + path : path; return brequest.get(url, query); } /** * List actors * @returns {Promise} */ }, { key: "actors", value: function () { var _actors = _asyncToGenerator( /*#__PURE__*/ _regeneratorRuntime.mark(function _callee() { var _ref, body, data, included, includedDict; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.get(ACTOR_URL, {}); case 2: _ref = _context.sent; body = _ref.body; data = body.data, included = body.included; includedDict = this._includedToDict(included); return _context.abrupt("return", data.map(function (data) { return includedDict[data.type][data.id]; })); case 7: case "end": return _context.stop(); } } }, _callee, this); })); return function actors() { return _actors.apply(this, arguments); }; }() /** * List callers * @returns {Promise} */ }, { key: "callers", value: function () { var _callers = _asyncToGenerator( /*#__PURE__*/ _regeneratorRuntime.mark(function _callee2() { var _ref2, body, data, included, includedDict; return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.get(CALLER_URL, {}); case 2: _ref2 = _context2.sent; body = _ref2.body; data = body.data, included = body.included; includedDict = this._includedToDict(included); return _context2.abrupt("return", data.map(function (data) { return includedDict[data.type][data.id]; })); case 7: case "end": return _context2.stop(); } } }, _callee2, this); })); return function callers() { return _callers.apply(this, arguments); }; }() }, { key: "_includedToDict", value: function _includedToDict(included) { var dict = {}; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = _getIterator(included), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _entry = _step.value; var type = _entry.type, id = _entry.id; dict[type] = dict[type] || {}; dict[type][id] = _entry.attributes; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return dict; } }]); return SugoCloudAgent; }(); /** @lends agent */ function agent(url) { return new SugoCloudAgent(url); } _Object$assign(agent, { SugoCloudAgent: SugoCloudAgent }); module.exports = agent; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFnZW50LmpzIl0sIm5hbWVzIjpbImJyZXF1ZXN0IiwicmVxdWlyZSIsIkh1YlVybHMiLCJBQ1RPUl9VUkwiLCJDQUxMRVJfVVJMIiwiT0JTRVJWRVJfVVJMIiwiU3Vnb0Nsb3VkQWdlbnQiLCJ1cmwiLCJiYXNlVXJsIiwicGF0aCIsInF1ZXJ5IiwiZ2V0IiwiYm9keSIsImRhdGEiLCJpbmNsdWRlZCIsImluY2x1ZGVkRGljdCIsIl9pbmNsdWRlZFRvRGljdCIsIm1hcCIsInR5cGUiLCJpZCIsImRpY3QiLCJlbnRyeSIsImF0dHJpYnV0ZXMiLCJhZ2VudCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBSUE7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsV0FBV0MsUUFBUSxVQUFSLENBQWpCOztlQUNrQkEsUUFBUSxnQkFBUixDO0lBQVhDLE8sWUFBQUEsTzs7SUFDQUMsUyxHQUF1Q0QsTyxDQUF2Q0MsUztJQUFXQyxVLEdBQTRCRixPLENBQTVCRSxVO0lBQVlDLFksR0FBZ0JILE8sQ0FBaEJHLFk7O0lBRXhCQyxjOzs7QUFDSiw0QkFBeUI7QUFBQSxRQUFaQyxHQUFZLHVFQUFOLElBQU07O0FBQUE7O0FBQ3ZCLFNBQUtDLE9BQUwsR0FBZUQsR0FBZjtBQUNEOzs7O3dCQUVJRSxJLEVBQU1DLEssRUFBTztBQUNoQixVQUFJSCxNQUFNLEtBQUtDLE9BQUwsR0FBZSxLQUFLQSxPQUFMLEdBQWVDLElBQTlCLEdBQXFDQSxJQUEvQztBQUNBLGFBQU9ULFNBQVNXLEdBQVQsQ0FBYUosR0FBYixFQUFrQkcsS0FBbEIsQ0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1QkFLdUIsS0FBS0MsR0FBTCxDQUFTUixTQUFULEVBQW9CLEVBQXBCLEM7Ozs7QUFBZFMsb0IsUUFBQUEsSTtBQUNBQyxvQixHQUFrQkQsSSxDQUFsQkMsSSxFQUFNQyxRLEdBQVlGLEksQ0FBWkUsUTtBQUNQQyw0QixHQUFlLEtBQUtDLGVBQUwsQ0FBcUJGLFFBQXJCLEM7aURBQ2RELEtBQUtJLEdBQUwsQ0FBUyxVQUFDSixJQUFEO0FBQUEseUJBQVVFLGFBQWFGLEtBQUtLLElBQWxCLEVBQXdCTCxLQUFLTSxFQUE3QixDQUFWO0FBQUEsaUJBQVQsQzs7Ozs7Ozs7Ozs7Ozs7QUFHVDs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VCQUt1QixLQUFLUixHQUFMLENBQVNQLFVBQVQsRUFBcUIsRUFBckIsQzs7OztBQUFkUSxvQixTQUFBQSxJO0FBQ0FDLG9CLEdBQWtCRCxJLENBQWxCQyxJLEVBQU1DLFEsR0FBWUYsSSxDQUFaRSxRO0FBQ1BDLDRCLEdBQWUsS0FBS0MsZUFBTCxDQUFxQkYsUUFBckIsQztrREFDZEQsS0FBS0ksR0FBTCxDQUFTLFVBQUNKLElBQUQ7QUFBQSx5QkFBVUUsYUFBYUYsS0FBS0ssSUFBbEIsRUFBd0JMLEtBQUtNLEVBQTdCLENBQVY7QUFBQSxpQkFBVCxDOzs7Ozs7Ozs7Ozs7Ozs7O29DQUdRTCxRLEVBQVU7QUFDekIsVUFBTU0sT0FBTyxFQUFiO0FBRHlCO0FBQUE7QUFBQTs7QUFBQTtBQUV6QiwwQ0FBb0JOLFFBQXBCLDRHQUE4QjtBQUFBLGNBQW5CTyxNQUFtQjtBQUFBLGNBQ3JCSCxJQURxQixHQUNURyxNQURTLENBQ3JCSCxJQURxQjtBQUFBLGNBQ2ZDLEVBRGUsR0FDVEUsTUFEUyxDQUNmRixFQURlO0FBRTVCQyxlQUFLRixJQUFMLElBQWFFLEtBQUtGLElBQUwsS0FBYyxFQUEzQjtBQUNBRSxlQUFLRixJQUFMLEVBQVdDLEVBQVgsSUFBaUJFLE9BQU1DLFVBQXZCO0FBQ0Q7QUFOd0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFPekIsYUFBT0YsSUFBUDtBQUNEOzs7OztBQUdIOzs7QUFDQSxTQUFTRyxLQUFULENBQWdCaEIsR0FBaEIsRUFBcUI7QUFDbkIsU0FBTyxJQUFJRCxjQUFKLENBQW1CQyxHQUFuQixDQUFQO0FBQ0Q7O0FBRUQsZUFBY2dCLEtBQWQsRUFBcUI7QUFDbkJqQjtBQURtQixDQUFyQjs7QUFJQWtCLE9BQU9DLE9BQVAsR0FBaUJGLEtBQWpCIiwiZmlsZSI6ImFnZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3NlciBzaWRlIGFnZW50IGZvciBzcG90XG4gKiBAZnVuY3Rpb24gYWdlbnRcbiAqL1xuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGJyZXF1ZXN0ID0gcmVxdWlyZSgnYnJlcXVlc3QnKVxuY29uc3Qge0h1YlVybHN9ID0gcmVxdWlyZSgnc3Vnby1jb25zdGFudHMnKVxuY29uc3Qge0FDVE9SX1VSTCwgQ0FMTEVSX1VSTCwgT0JTRVJWRVJfVVJMfSA9IEh1YlVybHNcblxuY2xhc3MgU3Vnb0Nsb3VkQWdlbnQge1xuICBjb25zdHJ1Y3RvciAodXJsID0gbnVsbCkge1xuICAgIHRoaXMuYmFzZVVybCA9IHVybFxuICB9XG5cbiAgZ2V0IChwYXRoLCBxdWVyeSkge1xuICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgPyB0aGlzLmJhc2VVcmwgKyBwYXRoIDogcGF0aFxuICAgIHJldHVybiBicmVxdWVzdC5nZXQodXJsLCBxdWVyeSlcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFjdG9yc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAgICovXG4gIGFzeW5jIGFjdG9ycyAoKSB7XG4gICAgY29uc3Qge2JvZHl9ID0gYXdhaXQgdGhpcy5nZXQoQUNUT1JfVVJMLCB7fSlcbiAgICBjb25zdCB7ZGF0YSwgaW5jbHVkZWR9ID0gYm9keVxuICAgIGNvbnN0IGluY2x1ZGVkRGljdCA9IHRoaXMuX2luY2x1ZGVkVG9EaWN0KGluY2x1ZGVkKVxuICAgIHJldHVybiBkYXRhLm1hcCgoZGF0YSkgPT4gaW5jbHVkZWREaWN0W2RhdGEudHlwZV1bZGF0YS5pZF0pXG4gIH1cblxuICAvKipcbiAgICogTGlzdCBjYWxsZXJzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgYXN5bmMgY2FsbGVycyAoKSB7XG4gICAgY29uc3Qge2JvZHl9ID0gYXdhaXQgdGhpcy5nZXQoQ0FMTEVSX1VSTCwge30pXG4gICAgY29uc3Qge2RhdGEsIGluY2x1ZGVkfSA9IGJvZHlcbiAgICBjb25zdCBpbmNsdWRlZERpY3QgPSB0aGlzLl9pbmNsdWRlZFRvRGljdChpbmNsdWRlZClcbiAgICByZXR1cm4gZGF0YS5tYXAoKGRhdGEpID0+IGluY2x1ZGVkRGljdFtkYXRhLnR5cGVdW2RhdGEuaWRdKVxuICB9XG5cbiAgX2luY2x1ZGVkVG9EaWN0IChpbmNsdWRlZCkge1xuICAgIGNvbnN0IGRpY3QgPSB7fVxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgaW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHt0eXBlLCBpZH0gPSBlbnRyeVxuICAgICAgZGljdFt0eXBlXSA9IGRpY3RbdHlwZV0gfHwge31cbiAgICAgIGRpY3RbdHlwZV1baWRdID0gZW50cnkuYXR0cmlidXRlc1xuICAgIH1cbiAgICByZXR1cm4gZGljdFxuICB9XG59XG5cbi8qKiBAbGVuZHMgYWdlbnQgKi9cbmZ1bmN0aW9uIGFnZW50ICh1cmwpIHtcbiAgcmV0dXJuIG5ldyBTdWdvQ2xvdWRBZ2VudCh1cmwpXG59XG5cbk9iamVjdC5hc3NpZ24oYWdlbnQsIHtcbiAgU3Vnb0Nsb3VkQWdlbnRcbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gYWdlbnRcbiJdfQ==