File tree Expand file tree Collapse file tree 3 files changed +60
-50
lines changed Expand file tree Collapse file tree 3 files changed +60
-50
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,14 @@ export type LocaleRecord<T extends any[], R> = {
30
30
31
31
export type First < T extends readonly any [ ] > = T [ 0 ]
32
32
33
+ export declare type JsonPaths < T , Key extends keyof T = keyof T > = Key extends string ?
34
+ T [ Key ] extends Record < string , any > ?
35
+ `${Key } .${JsonPaths < T [ Key ] > } `
36
+ : `${Key } `
37
+ : never ;
38
+ export declare type TranslationsPaths < T extends object , K extends keyof T = keyof T > = K extends string
39
+ ? JsonPaths < T [ K ] > : never ;
40
+
33
41
export type __ResourcePath < T , Key extends keyof T > = Key extends string
34
42
? T [ Key ] extends Record < string , any >
35
43
?
Original file line number Diff line number Diff line change @@ -102,13 +102,14 @@ import type {
102
102
ResourceValue ,
103
103
ResourcePath ,
104
104
ResourceNode ,
105
- PickupPaths ,
106
105
PickupFormatPathKeys ,
107
106
RemoveIndexSignature ,
108
107
RemovedIndexResources ,
109
108
IsNever ,
110
109
IsEmptyObject ,
111
- CoreMissingType
110
+ CoreMissingType ,
111
+ JsonPaths ,
112
+ TranslationsPaths
112
113
} from '@intlify/core-base'
113
114
import type { VueDevToolsEmitter } from '@intlify/devtools-types'
114
115
@@ -640,11 +641,13 @@ export interface ComposerTranslation<
640
641
DefinedLocaleMessage extends
641
642
RemovedIndexResources < DefineLocaleMessage > = RemovedIndexResources < DefineLocaleMessage > ,
642
643
C = IsEmptyObject < DefinedLocaleMessage > extends false
643
- ? PickupPaths < {
644
+ ? JsonPaths < {
644
645
[ K in keyof DefinedLocaleMessage ] : DefinedLocaleMessage [ K ]
645
646
} >
646
647
: never ,
647
- M = IsEmptyObject < Messages > extends false ? PickupKeys < Messages > : never ,
648
+ M = IsEmptyObject < Messages > extends false
649
+ ? TranslationsPaths < Messages >
650
+ : never ,
648
651
ResourceKeys extends C | M = IsNever < C > extends false
649
652
? IsNever < M > extends false
650
653
? C | M
You can’t perform that action at this time.
0 commit comments