import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils'; import { BestAvailableLocale } from './BestAvailableLocale'; /** * https://tc39.es/ecma402/#sec-lookupmatcher * @param availableLocales * @param requestedLocales * @param getDefaultLocale */ export function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = { locale: '' }; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ''); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; }