@@ -79,16 +79,23 @@ import {
79
79
isString ,
80
80
isRegExp ,
81
81
isBoolean ,
82
- isPlainObject
82
+ isPlainObject ,
83
+ makeSymbol
83
84
} from './utils'
84
85
85
86
// extend VNode interface
86
87
declare module '@vue/runtime-core' {
88
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
87
89
interface VNode < HostNode = RendererNode , HostElement = RendererElement > {
88
90
toString : ( ) => string // mark for vue-i18n message runtime
89
91
}
90
92
}
91
93
94
+ export const ComposerIdSymbol = makeSymbol ( '__id' )
95
+ export const TransrateVNodeSymbol = makeSymbol ( '__transrateVNode' )
96
+ export const DatetimePartsSymbol = makeSymbol ( '__datetimeParts' )
97
+ export const NumberPartsSymbol = makeSymbol ( '__numberParts' )
98
+
92
99
export type VueMessageType = string | VNode
93
100
export type MissingHandler = (
94
101
locale : Locale ,
@@ -667,7 +674,8 @@ export function createComposer<
667
674
} ,
668
675
( ) => parseTranslateArgs ( ...args ) [ 0 ] ,
669
676
'translate' ,
670
- root => root . __transrateVNode ( ...args ) ,
677
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
678
+ root => ( root as any ) [ TransrateVNodeSymbol ] ( ...args ) ,
671
679
key => [ createVNode ( Text , null , key , 0 ) ] ,
672
680
val => isArray ( val )
673
681
)
@@ -679,7 +687,8 @@ export function createComposer<
679
687
context => number ( context as RuntimeContext < Messages , string > , ...args ) ,
680
688
( ) => parseNumberArgs ( ...args ) [ 0 ] ,
681
689
'number format' ,
682
- root => root . __numberParts ( ...args ) ,
690
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
691
+ root => ( root as any ) [ NumberPartsSymbol ] ( ...args ) ,
683
692
( ) => [ ] ,
684
693
val => isString ( val ) || isArray ( val )
685
694
)
@@ -693,7 +702,8 @@ export function createComposer<
693
702
context => datetime ( context as RuntimeContext < Messages , string > , ...args ) ,
694
703
( ) => parseDateTimeArgs ( ...args ) [ 0 ] ,
695
704
'datetime format' ,
696
- root => root . __datetimeParts ( ...args ) ,
705
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
706
+ root => ( root as any ) [ DatetimePartsSymbol ] ( ...args ) ,
697
707
( ) => [ ] ,
698
708
val => isString ( val ) || isArray ( val )
699
709
)
@@ -879,7 +889,7 @@ export function createComposer<
879
889
_warnHtmlMessage = val
880
890
_context . warnHtmlMessage = val
881
891
} ,
882
- __id : composerID ,
892
+ [ ComposerIdSymbol ] : composerID ,
883
893
// methods
884
894
t,
885
895
d,
@@ -898,9 +908,9 @@ export function createComposer<
898
908
setPostTranslationHandler,
899
909
getMissingHandler,
900
910
setMissingHandler,
901
- __transrateVNode,
902
- __numberParts,
903
- __datetimeParts
911
+ [ TransrateVNodeSymbol ] : __transrateVNode ,
912
+ [ NumberPartsSymbol ] : __numberParts ,
913
+ [ DatetimePartsSymbol ] : __datetimeParts
904
914
}
905
915
906
916
return composer
0 commit comments