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> = {
3030
3131export type First < T extends readonly any [ ] > = T [ 0 ]
3232
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+
3341export type __ResourcePath < T , Key extends keyof T > = Key extends string
3442 ? T [ Key ] extends Record < string , any >
3543 ?
Original file line number Diff line number Diff line change @@ -102,13 +102,14 @@ import type {
102102 ResourceValue ,
103103 ResourcePath ,
104104 ResourceNode ,
105- PickupPaths ,
106105 PickupFormatPathKeys ,
107106 RemoveIndexSignature ,
108107 RemovedIndexResources ,
109108 IsNever ,
110109 IsEmptyObject ,
111- CoreMissingType
110+ CoreMissingType ,
111+ JsonPaths ,
112+ TranslationsPaths
112113} from '@intlify/core-base'
113114import type { VueDevToolsEmitter } from '@intlify/devtools-types'
114115
@@ -640,11 +641,13 @@ export interface ComposerTranslation<
640641 DefinedLocaleMessage extends
641642 RemovedIndexResources < DefineLocaleMessage > = RemovedIndexResources < DefineLocaleMessage > ,
642643 C = IsEmptyObject < DefinedLocaleMessage > extends false
643- ? PickupPaths < {
644+ ? JsonPaths < {
644645 [ K in keyof DefinedLocaleMessage ] : DefinedLocaleMessage [ K ]
645646 } >
646647 : never ,
647- M = IsEmptyObject < Messages > extends false ? PickupKeys < Messages > : never ,
648+ M = IsEmptyObject < Messages > extends false
649+ ? TranslationsPaths < Messages >
650+ : never ,
648651 ResourceKeys extends C | M = IsNever < C > extends false
649652 ? IsNever < M > extends false
650653 ? C | M
You can’t perform that action at this time.
0 commit comments