Files
klz-cables.com/.pnpm-store/v10/files/82/13d942e526939e63ceff5394b521a8e377349d6d55bceb2863315498705ad15fe5644d23ed44fbd5787d2fa5e93dac40ba8afaea2c644d29a230da64b9f458
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

30 lines
954 B
Plaintext

import { CanonicalizeUnicodeLocaleId } from "./CanonicalizeUnicodeLocaleId.js";
import { invariant } from "./utils.js";
export function InsertUnicodeExtensionAndCanonicalize(locale, attributes, keywords) {
invariant(locale.indexOf("-u-") === -1, "Expected locale to not have a Unicode locale extension");
let extension = "-u";
for (const attr of attributes) {
extension += `-${attr}`;
}
for (const kw of keywords) {
const { key, value } = kw;
extension += `-${key}`;
if (value !== "") {
extension += `-${value}`;
}
}
if (extension === "-u") {
return CanonicalizeUnicodeLocaleId(locale);
}
let privateIndex = locale.indexOf("-x-");
let newLocale;
if (privateIndex === -1) {
newLocale = locale + extension;
} else {
let preExtension = locale.slice(0, privateIndex);
let postExtension = locale.slice(privateIndex);
newLocale = preExtension + extension + postExtension;
}
return CanonicalizeUnicodeLocaleId(newLocale);
}