UNPKG

next

Version:

The React Framework

36 lines (35 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "parseRelativeUrl", { enumerable: true, get: function() { return parseRelativeUrl; } }); const _utils = require("../../utils"); const _querystring = require("./querystring"); function parseRelativeUrl(url, base, parseQuery = true) { const globalBase = new URL(typeof window === 'undefined' ? 'http://n' : (0, _utils.getLocationOrigin)()); const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL(typeof window === 'undefined' ? 'http://n' : window.location.href) : globalBase; const { pathname, searchParams, search, hash, href, origin } = new URL(url, resolvedBase); if (origin !== globalBase.origin) { throw Object.defineProperty(new Error(`invariant: invalid relative URL, router received ${url}`), "__NEXT_ERROR_CODE", { value: "E159", enumerable: false, configurable: true }); } return { pathname, query: parseQuery ? (0, _querystring.searchParamsToUrlQuery)(searchParams) : undefined, search, hash, href: href.slice(origin.length), // We don't know for relative URLs at this point since we set a custom, internal // base that isn't surfaced to users. slashes: undefined }; } //# sourceMappingURL=parse-relative-url.js.map