sugo-actor
Version:
Actor component of SUGOS.
54 lines (45 loc) • 4.72 kB
JavaScript
/**
* Parse actor URL
* @function parseActorUrl
* @param {Object|string}
* @returns {string}
*/
'use strict';
var _require = require('url'),
formatUrl = _require.format,
parseUrl = _require.parse,
resolveUrl = _require.resolve;
var _require2 = require('bwindow'),
get = _require2.get;
var _require3 = require('sugo-constants'),
HubUrls = _require3.HubUrls;
/** @lends parseActorUrl */
function parseActorUrl(url) {
if (typeof url === 'string') {
var parsed = parseUrl(url);
if (parsed.pathname === '/') {
var suggestion = resolveUrl(url, HubUrls.ACTOR_URL);
console.warn("[SUGO-Actor][Warning] Passed URL \"".concat(url, "\" seems to be wrong. Did you mean \"").concat(suggestion, "\"?"));
}
return url;
}
var _url$protocol = url.protocol,
protocol = _url$protocol === void 0 ? get('location.protocol') || 'http' : _url$protocol,
_url$host = url.host,
host = _url$host === void 0 ? undefined : _url$host,
_url$port = url.port,
port = _url$port === void 0 ? get('location.port') || 80 : _url$port,
_url$hostname = url.hostname,
hostname = _url$hostname === void 0 ? get('location.hostname') || 'localhost' : _url$hostname,
_url$pathname = url.pathname,
pathname = _url$pathname === void 0 ? HubUrls.ACTOR_URL : _url$pathname;
return formatUrl({
protocol: protocol,
host: host,
port: port,
hostname: hostname,
pathname: pathname
});
}
module.exports = parseActorUrl;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNpbmcvcGFyc2VfYWN0b3JfdXJsLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJmb3JtYXRVcmwiLCJmb3JtYXQiLCJwYXJzZVVybCIsInBhcnNlIiwicmVzb2x2ZVVybCIsInJlc29sdmUiLCJnZXQiLCJIdWJVcmxzIiwicGFyc2VBY3RvclVybCIsInVybCIsInBhcnNlZCIsInBhdGhuYW1lIiwic3VnZ2VzdGlvbiIsIkFDVE9SX1VSTCIsImNvbnNvbGUiLCJ3YXJuIiwicHJvdG9jb2wiLCJob3N0IiwidW5kZWZpbmVkIiwicG9ydCIsImhvc3RuYW1lIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztBQU1BOztlQU1JQSxRQUFRLEtBQVIsQztJQUhNQyxTLFlBQVJDLE07SUFDT0MsUSxZQUFQQyxLO0lBQ1NDLFUsWUFBVEMsTzs7Z0JBRWNOLFFBQVEsU0FBUixDO0lBQVJPLEcsYUFBQUEsRzs7Z0JBQ1lQLFFBQVEsZ0JBQVIsQztJQUFaUSxPLGFBQUFBLE87QUFFUjs7O0FBQ0EsU0FBU0MsYUFBVCxDQUF3QkMsR0FBeEIsRUFBNkI7QUFDM0IsTUFBSSxPQUFPQSxHQUFQLEtBQWUsUUFBbkIsRUFBNkI7QUFDM0IsUUFBSUMsU0FBU1IsU0FBU08sR0FBVCxDQUFiOztBQUNBLFFBQUlDLE9BQU9DLFFBQVAsS0FBb0IsR0FBeEIsRUFBNkI7QUFDM0IsVUFBSUMsYUFBYVIsV0FBV0ssR0FBWCxFQUFnQkYsUUFBUU0sU0FBeEIsQ0FBakI7QUFDQUMsY0FBUUMsSUFBUiw4Q0FBa0ROLEdBQWxELGtEQUEyRkcsVUFBM0Y7QUFDRDs7QUFDRCxXQUFPSCxHQUFQO0FBQ0Q7O0FBUjBCLHNCQWV2QkEsR0FmdUIsQ0FVekJPLFFBVnlCO0FBQUEsTUFVekJBLFFBVnlCLDhCQVVkVixJQUFJLG1CQUFKLEtBQTRCLE1BVmQ7QUFBQSxrQkFldkJHLEdBZnVCLENBV3pCUSxJQVh5QjtBQUFBLE1BV3pCQSxJQVh5QiwwQkFXbEJDLFNBWGtCO0FBQUEsa0JBZXZCVCxHQWZ1QixDQVl6QlUsSUFaeUI7QUFBQSxNQVl6QkEsSUFaeUIsMEJBWWxCYixJQUFJLGVBQUosS0FBd0IsRUFaTjtBQUFBLHNCQWV2QkcsR0FmdUIsQ0FhekJXLFFBYnlCO0FBQUEsTUFhekJBLFFBYnlCLDhCQWFkZCxJQUFJLG1CQUFKLEtBQTRCLFdBYmQ7QUFBQSxzQkFldkJHLEdBZnVCLENBY3pCRSxRQWR5QjtBQUFBLE1BY3pCQSxRQWR5Qiw4QkFjZEosUUFBUU0sU0FkTTtBQWdCM0IsU0FBT2IsVUFBVTtBQUNmZ0Isc0JBRGU7QUFFZkMsY0FGZTtBQUdmRSxjQUhlO0FBSWZDLHNCQUplO0FBS2ZUO0FBTGUsR0FBVixDQUFQO0FBT0Q7O0FBRURVLE9BQU9DLE9BQVAsR0FBaUJkLGFBQWpCIiwiZmlsZSI6InBhcnNpbmcvcGFyc2VfYWN0b3JfdXJsLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFyc2UgYWN0b3IgVVJMXG4gKiBAZnVuY3Rpb24gcGFyc2VBY3RvclVybFxuICogQHBhcmFtIHtPYmplY3R8c3RyaW5nfVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHtcbiAgZm9ybWF0OiBmb3JtYXRVcmwsXG4gIHBhcnNlOiBwYXJzZVVybCxcbiAgcmVzb2x2ZTogcmVzb2x2ZVVybFxufSA9IHJlcXVpcmUoJ3VybCcpXG5jb25zdCB7IGdldCB9ID0gcmVxdWlyZSgnYndpbmRvdycpXG5jb25zdCB7IEh1YlVybHMgfSA9IHJlcXVpcmUoJ3N1Z28tY29uc3RhbnRzJylcblxuLyoqIEBsZW5kcyBwYXJzZUFjdG9yVXJsICovXG5mdW5jdGlvbiBwYXJzZUFjdG9yVXJsICh1cmwpIHtcbiAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnKSB7XG4gICAgbGV0IHBhcnNlZCA9IHBhcnNlVXJsKHVybClcbiAgICBpZiAocGFyc2VkLnBhdGhuYW1lID09PSAnLycpIHtcbiAgICAgIGxldCBzdWdnZXN0aW9uID0gcmVzb2x2ZVVybCh1cmwsIEh1YlVybHMuQUNUT1JfVVJMKVxuICAgICAgY29uc29sZS53YXJuKGBbU1VHTy1BY3Rvcl1bV2FybmluZ10gUGFzc2VkIFVSTCBcIiR7dXJsfVwiIHNlZW1zIHRvIGJlIHdyb25nLiBEaWQgeW91IG1lYW4gXCIke3N1Z2dlc3Rpb259XCI/YClcbiAgICB9XG4gICAgcmV0dXJuIHVybFxuICB9XG4gIGxldCB7XG4gICAgcHJvdG9jb2wgPSBnZXQoJ2xvY2F0aW9uLnByb3RvY29sJykgfHwgJ2h0dHAnLFxuICAgIGhvc3QgPSB1bmRlZmluZWQsXG4gICAgcG9ydCA9IGdldCgnbG9jYXRpb24ucG9ydCcpIHx8IDgwLFxuICAgIGhvc3RuYW1lID0gZ2V0KCdsb2NhdGlvbi5ob3N0bmFtZScpIHx8ICdsb2NhbGhvc3QnLFxuICAgIHBhdGhuYW1lID0gSHViVXJscy5BQ1RPUl9VUkxcbiAgfSA9IHVybFxuICByZXR1cm4gZm9ybWF0VXJsKHtcbiAgICBwcm90b2NvbCxcbiAgICBob3N0LFxuICAgIHBvcnQsXG4gICAgaG9zdG5hbWUsXG4gICAgcGF0aG5hbWVcbiAgfSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZUFjdG9yVXJsXG4iXX0=