@@ -169,6 +169,7 @@ export interface CoreOptions<
169
169
messageCompiler ?: MessageCompiler < Message >
170
170
messageResolver ?: MessageResolver
171
171
localeFallbacker ?: LocaleFallbacker
172
+ fallbackContext ?: CoreContext < Message , MessagesLocales , DateTimeFormatsLocales , NumberFormatsLocales >
172
173
onWarn ?: ( msg : string , err ?: Error ) => void
173
174
}
174
175
@@ -228,7 +229,16 @@ export type CoreContext<
228
229
> = CoreCommonContext < Message , Locales > &
229
230
CoreTranslationContext < NonNullable < Messages > , Message > &
230
231
CoreDateTimeContext < NonNullable < DateTimeFormats > > &
231
- CoreNumberContext < NonNullable < NumberFormats > >
232
+ CoreNumberContext < NonNullable < NumberFormats > > & {
233
+ fallbackContext ?: CoreContext <
234
+ Message ,
235
+ Messages ,
236
+ DateTimeFormats ,
237
+ NumberFormats ,
238
+ ResourceLocales ,
239
+ Locales
240
+ >
241
+ }
232
242
233
243
export interface CoreInternalContext {
234
244
__datetimeFormatters : Map < string , Intl . DateTimeFormat >
@@ -312,6 +322,14 @@ export const setAdditionalMeta = /* #__PURE__*/ (
312
322
export const getAdditionalMeta = /* #__PURE__*/ ( ) : MetaInfo | null =>
313
323
_additionalMeta
314
324
325
+ let _fallbackContext : CoreContext | null = null
326
+
327
+ export const setFallbackContext = ( context : CoreContext | null ) : void => {
328
+ _fallbackContext = context
329
+ }
330
+
331
+ export const getFallbackContext = ( ) : CoreContext | null => _fallbackContext
332
+
315
333
// ID for CoreContext
316
334
let _cid = 0
317
335
@@ -411,6 +429,9 @@ export function createCoreContext<Message = string>(options: any = {}): any {
411
429
const localeFallbacker = isFunction ( options . localeFallbacker )
412
430
? options . localeFallbacker
413
431
: _fallbacker || fallbackWithSimple
432
+ const fallbackContext = isObject ( options . fallbackContext )
433
+ ? options . fallbackContext
434
+ : undefined
414
435
const onWarn = isFunction ( options . onWarn ) ? options . onWarn : warn
415
436
416
437
// setup internal options
@@ -449,6 +470,7 @@ export function createCoreContext<Message = string>(options: any = {}): any {
449
470
messageCompiler,
450
471
messageResolver,
451
472
localeFallbacker,
473
+ fallbackContext,
452
474
onWarn,
453
475
__meta
454
476
}
0 commit comments