vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
29 lines (28 loc) • 996 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.modifyUrl = modifyUrl;
const modifyUrlSameOrigin_js_1 = require("./modifyUrlSameOrigin.js");
const utils_js_1 = require("./utils.js");
/**
* Modify a URL.
*
* Example: changing the URL pathname for internationalization.
*
* https://vike.dev/modifyUrl
*/
function modifyUrl(url, modify) {
url = (0, modifyUrlSameOrigin_js_1.modifyUrlSameOrigin)(url, modify);
const urlParsed = (0, utils_js_1.parseUrl)(url, '/');
// Origin
const originParts = [
modify.protocol ?? urlParsed.protocol ?? '',
modify.hostname ?? urlParsed.hostname ?? '',
];
const port = modify.port ?? urlParsed.port;
if (port || port === 0) {
originParts.push(`:${port}`);
}
const origin = originParts.join('');
const urlModified = (0, utils_js_1.createUrlFromComponents)(origin, urlParsed.pathname, urlParsed.searchOriginal, urlParsed.hashOriginal);
return urlModified;
}