limited-request-queue
Version:
Interactively manage concurrency for outbound requests.
59 lines (47 loc) • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _parseDomain2 = _interopRequireDefault(require("parse-domain"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/**
* Produce a normalized URL.
* @param {URL} url
* @param {object} options
* @param {object} [optionOverrides]
* @returns {string}
*/
var _default = function _default(_ref, options, optionOverrides) {
var _ref2, _ref3, _ref4;
var hostname = _ref.hostname,
port = _ref.port,
protocol = _ref.protocol;
var ignorePorts = (_ref2 = optionOverrides === null || optionOverrides === void 0 ? void 0 : optionOverrides.ignorePorts) !== null && _ref2 !== void 0 ? _ref2 : options.ignorePorts;
var ignoreProtocols = (_ref3 = optionOverrides === null || optionOverrides === void 0 ? void 0 : optionOverrides.ignoreProtocols) !== null && _ref3 !== void 0 ? _ref3 : options.ignoreProtocols;
var ignoreSubdomains = (_ref4 = optionOverrides === null || optionOverrides === void 0 ? void 0 : optionOverrides.ignoreSubdomains) !== null && _ref4 !== void 0 ? _ref4 : options.ignoreSubdomains;
var key = "";
if (!ignoreProtocols) {
key += "".concat(protocol, "//");
}
if (!ignoreSubdomains) {
key += hostname;
} else {
var _parseDomain;
// Returns `null` if unknown top-level domain or running in a browser
var _ref5 = (_parseDomain = (0, _parseDomain2["default"])(hostname)) !== null && _parseDomain !== void 0 ? _parseDomain : {},
domain = _ref5.domain,
tld = _ref5.tld;
if (domain === undefined && tld === undefined) {
key += hostname;
} else {
key += "".concat(domain, ".").concat(tld);
}
}
if (!ignorePorts && port !== "") {
key += ":".concat(port);
}
return key;
};
exports["default"] = _default;
//# sourceMappingURL=normalizeURL.js.map