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

22 lines
No EOL
669 B
TypeScript

// License: LGPL-3.0-or-later
import {shouldPolyfill} from '@formatjs/intl-numberformat/should-polyfill';
import pluralRules from './pluralRules';
import type {Polyfilled} from './types';
type PolyfilledNumberFormat = Polyfilled<typeof Intl.NumberFormat>;
export default async function numberFormat(locales:string[]) :Promise<void> {
await pluralRules(locales);
if (shouldPolyfill()) {
// Load the polyfill 1st BEFORE loading data
await import('@formatjs/intl-numberformat/polyfill');
}
if ((Intl.NumberFormat as PolyfilledNumberFormat).polyfilled) {
await Promise.all(
locales.map(l => import("@formatjs/intl-numberformat/locale-data/"+ l))
);
}
}