houdini/app/javascript/common/intl-polyfills/custom/pluralRules.ts

22 lines
677 B
TypeScript
Raw Normal View History

2020-10-08 20:39:51 +00:00
// License: LGPL-3.0-or-later
import {shouldPolyfill} from '@formatjs/intl-pluralrules/should-polyfill';
import type {Polyfilled} from './types';
import getCanonicalLocales from './getCanonicalLocales';
type PolyfilledPluralRules = Polyfilled<typeof Intl.PluralRules>;
2020-10-08 20:39:51 +00:00
export default async function pluralRules(locales:string[]):Promise<void> {
await getCanonicalLocales();
if (shouldPolyfill()) {
// Load the polyfill 1st BEFORE loading data
await import('@formatjs/intl-pluralrules/polyfill');
}
if ((Intl.PluralRules as PolyfilledPluralRules).polyfilled) {
await Promise.all(
locales.map(l => import("@formatjs/intl-pluralrules/locale-data/"+ l))
);
}
}