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
33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
import { CanonicalizeUnicodeLocaleId } from './CanonicalizeUnicodeLocaleId';
|
|
import { invariant } from './utils';
|
|
export function InsertUnicodeExtensionAndCanonicalize(locale, attributes, keywords) {
|
|
invariant(locale.indexOf('-u-') === -1, 'Expected locale to not have a Unicode locale extension');
|
|
var extension = '-u';
|
|
for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {
|
|
var attr = attributes_1[_i];
|
|
extension += "-".concat(attr);
|
|
}
|
|
for (var _a = 0, keywords_1 = keywords; _a < keywords_1.length; _a++) {
|
|
var kw = keywords_1[_a];
|
|
var key = kw.key, value = kw.value;
|
|
extension += "-".concat(key);
|
|
if (value !== '') {
|
|
extension += "-".concat(value);
|
|
}
|
|
}
|
|
if (extension === '-u') {
|
|
return CanonicalizeUnicodeLocaleId(locale);
|
|
}
|
|
var privateIndex = locale.indexOf('-x-');
|
|
var newLocale;
|
|
if (privateIndex === -1) {
|
|
newLocale = locale + extension;
|
|
}
|
|
else {
|
|
var preExtension = locale.slice(0, privateIndex);
|
|
var postExtension = locale.slice(privateIndex);
|
|
newLocale = preExtension + extension + postExtension;
|
|
}
|
|
return CanonicalizeUnicodeLocaleId(newLocale);
|
|
}
|