function createFormatters(cache) {
        if (cache === void 0) { cache = createIntlCache(); }
        var RelativeTimeFormat = Intl.RelativeTimeFormat;
        var ListFormat = Intl.ListFormat;
        var DisplayNames = Intl.DisplayNames;
        var getDateTimeFormat = memoizeIntl$1(function () {
            var _a;
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArrays([void 0], args)))();
        }, {
            cache: createFastMemoizeCache$1(cache.dateTime),
            strategy: memoizeIntl$1.strategies.variadic,
        });
        var getNumberFormat = memoizeIntl$1(function () {
            var _a;
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArrays([void 0], args)))();
        }, {
            cache: createFastMemoizeCache$1(cache.number),
            strategy: memoizeIntl$1.strategies.variadic,
        });
        var getPluralRules = memoizeIntl$1(function () {
            var _a;
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArrays([void 0], args)))();
        }, {
            cache: createFastMemoizeCache$1(cache.pluralRules),
            strategy: memoizeIntl$1.strategies.variadic,
        });
        return {
            getDateTimeFormat: getDateTimeFormat,
            getNumberFormat: getNumberFormat,
            getMessageFormat: memoizeIntl$1(function (message, locales, overrideFormats, opts) {
                return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {
                        getNumberFormat: getNumberFormat,
                        getDateTimeFormat: getDateTimeFormat,
                        getPluralRules: getPluralRules,
                    } }, (opts || {})));
            }, {
                cache: createFastMemoizeCache$1(cache.message),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
            getRelativeTimeFormat: memoizeIntl$1(function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArrays([void 0], args)))();
            }, {
                cache: createFastMemoizeCache$1(cache.relativeTime),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
            getPluralRules: getPluralRules,
            getListFormat: memoizeIntl$1(function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                return new (ListFormat.bind.apply(ListFormat, __spreadArrays([void 0], args)))();
            }, {
                cache: createFastMemoizeCache$1(cache.list),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
            getDisplayNames: memoizeIntl$1(function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                return new (DisplayNames.bind.apply(DisplayNames, __spreadArrays([void 0], args)))();
            }, {
                cache: createFastMemoizeCache$1(cache.displayNames),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
        };
    }
/**
     * Create intl formatters and populate cache
     * @param cache explicit cache to prevent leaking memory
     */
Create intl formatters and populate cache
@param cache explicit cache to prevent leaking memory
Create intl formatters and populate cache @param cache explicit cache to prevent leaking memory
function createFormatters(cache) {
        if (cache === void 0) { cache = createIntlCache(); }
        var RelativeTimeFormat = Intl.RelativeTimeFormat;
        var ListFormat = Intl.ListFormat;
        var DisplayNames = Intl.DisplayNames;
        var getDateTimeFormat = memoizeIntl$1(function () {
            var _a;
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArrays([void 0], args)))();
        }, {
            cache: createFastMemoizeCache$1(cache.dateTime),
            strategy: memoizeIntl$1.strategies.variadic,
        });
        var getNumberFormat = memoizeIntl$1(function () {
            var _a;
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArrays([void 0], args)))();
        }, {
            cache: createFastMemoizeCache$1(cache.number),
            strategy: memoizeIntl$1.strategies.variadic,
        });
        var getPluralRules = memoizeIntl$1(function () {
            var _a;
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArrays([void 0], args)))();
        }, {
            cache: createFastMemoizeCache$1(cache.pluralRules),
            strategy: memoizeIntl$1.strategies.variadic,
        });
        return {
            getDateTimeFormat: getDateTimeFormat,
            getNumberFormat: getNumberFormat,
            getMessageFormat: memoizeIntl$1(function (message, locales, overrideFormats, opts) {
                return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {
                        getNumberFormat: getNumberFormat,
                        getDateTimeFormat: getDateTimeFormat,
                        getPluralRules: getPluralRules,
                    } }, (opts || {})));
            }, {
                cache: createFastMemoizeCache$1(cache.message),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
            getRelativeTimeFormat: memoizeIntl$1(function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArrays([void 0], args)))();
            }, {
                cache: createFastMemoizeCache$1(cache.relativeTime),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
            getPluralRules: getPluralRules,
            getListFormat: memoizeIntl$1(function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                return new (ListFormat.bind.apply(ListFormat, __spreadArrays([void 0], args)))();
            }, {
                cache: createFastMemoizeCache$1(cache.list),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
            getDisplayNames: memoizeIntl$1(function () {
                var args = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    args[_i] = arguments[_i];
                }
                return new (DisplayNames.bind.apply(DisplayNames, __spreadArrays([void 0], args)))();
            }, {
                cache: createFastMemoizeCache$1(cache.displayNames),
                strategy: memoizeIntl$1.strategies.variadic,
            }),
        };
    }
function createFormatters ( cache ) { if ( cache === void 0 ) { cache = createIntlCache ( ) ; } var RelativeTimeFormat = Intl . RelativeTimeFormat ; var ListFormat = Intl . ListFormat ; var DisplayNames = Intl . DisplayNames ; var getDateTimeFormat = memoizeIntl$1 ( function ( ) { var _a ; var args = [ ] ; for ( var _i = 0 ; _i < arguments . length ; _i ++ ) { args [ _i ] = arguments [ _i ] ; } return new ( ( _a = Intl . DateTimeFormat ) . bind . apply ( _a , __spreadArrays ( [ void 0 ] , args ) ) ) ( ) ; } , { cache : createFastMemoizeCache$1 ( cache . dateTime ) , strategy : memoizeIntl$1 . strategies . variadic , } ) ; var getNumberFormat = memoizeIntl$1 ( function ( ) { var _a ; var args = [ ] ; for ( var _i = 0 ; _i < arguments . length ; _i ++ ) { args [ _i ] = arguments [ _i ] ; } return new ( ( _a = Intl . NumberFormat ) . bind . apply ( _a , __spreadArrays ( [ void 0 ] , args ) ) ) ( ) ; } , { cache : createFastMemoizeCache$1 ( cache . number ) , strategy : memoizeIntl$1 . strategies . variadic , } ) ; var getPluralRules = memoizeIntl$1 ( function ( ) { var _a ; var args = [ ] ; for ( var _i = 0 ; _i < arguments . length ; _i ++ ) { args [ _i ] = arguments [ _i ] ; } return new ( ( _a = Intl . PluralRules ) . bind . apply ( _a , __spreadArrays ( [ void 0 ] , args ) ) ) ( ) ; } , { cache : createFastMemoizeCache$1 ( cache . pluralRules ) , strategy : memoizeIntl$1 . strategies . variadic , } ) ; return { getDateTimeFormat : getDateTimeFormat , getNumberFormat : getNumberFormat , getMessageFormat : memoizeIntl$1 ( function ( message , locales , overrideFormats , opts ) { return new IntlMessageFormat ( message , locales , overrideFormats , __assign ( { formatters : { getNumberFormat : getNumberFormat , getDateTimeFormat : getDateTimeFormat , getPluralRules : getPluralRules , } } , ( opts || { } ) ) ) ; } , { cache : createFastMemoizeCache$1 ( cache . message ) , strategy : memoizeIntl$1 . strategies . variadic , } ) , getRelativeTimeFormat : memoizeIntl$1 ( function ( ) { var args = [ ] ; for ( var _i = 0 ; _i < arguments . length ; _i ++ ) { args [ _i ] = arguments [ _i ] ; } return new ( RelativeTimeFormat . bind . apply ( RelativeTimeFormat , __spreadArrays ( [ void 0 ] , args ) ) ) ( ) ; } , { cache : createFastMemoizeCache$1 ( cache . relativeTime ) , strategy : memoizeIntl$1 . strategies . variadic , } ) , getPluralRules : getPluralRules , getListFormat : memoizeIntl$1 ( function ( ) { var args = [ ] ; for ( var _i = 0 ; _i < arguments . length ; _i ++ ) { args [ _i ] = arguments [ _i ] ; } return new ( ListFormat . bind . apply ( ListFormat , __spreadArrays ( [ void 0 ] , args ) ) ) ( ) ; } , { cache : createFastMemoizeCache$1 ( cache . list ) , strategy : memoizeIntl$1 . strategies . variadic , } ) , getDisplayNames : memoizeIntl$1 ( function ( ) { var args = [ ] ; for ( var _i = 0 ; _i < arguments . length ; _i ++ ) { args [ _i ] = arguments [ _i ] ; } return new ( DisplayNames . bind . apply ( DisplayNames , __spreadArrays ( [ void 0 ] , args ) ) ) ( ) ; } , { cache : createFastMemoizeCache$1 ( cache . displayNames ) , strategy : memoizeIntl$1 . strategies . variadic , } ) , } ; }
Create intl formatters and populate cache
 @param cache explicit cache to prevent leaking memory
Create intl formatters and populate cache @param cache explicit cache to prevent leaking memory