26 lines
707 B
Plaintext
Executable File
26 lines
707 B
Plaintext
Executable File
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.BestAvailableLocale = void 0;
|
|
/**
|
|
* https://tc39.es/ecma402/#sec-bestavailablelocale
|
|
* @param availableLocales
|
|
* @param locale
|
|
*/
|
|
function BestAvailableLocale(availableLocales, locale) {
|
|
var candidate = locale;
|
|
while (true) {
|
|
if (availableLocales.has(candidate)) {
|
|
return candidate;
|
|
}
|
|
var pos = candidate.lastIndexOf('-');
|
|
if (!~pos) {
|
|
return undefined;
|
|
}
|
|
if (pos >= 2 && candidate[pos - 2] === '-') {
|
|
pos -= 2;
|
|
}
|
|
candidate = candidate.slice(0, pos);
|
|
}
|
|
}
|
|
exports.BestAvailableLocale = BestAvailableLocale;
|