@@ -4,6 +4,35 @@ import MessageInitializer from '../internal/types/MessageInitializer'
44import MessageCreator from '../internal/types/MessageCreator'
55import buildMessageCreator from '../internal/buildMessageCreator' ;
66
7+ // --- defineMessages -----------------------------------------------
8+
9+ function defineMessages < T extends MessagesConfig > ( prefix : string , config : T ) :
10+ { [ K in keyof T ] : MessageCreator < K , Arguments < any , T [ K ] > , Payload < T [ K ] > , Meta < T [ K ] > > }
11+
12+ function defineMessages < T extends MessagesConfig > ( config : T ) :
13+ { [ K in keyof T ] : MessageCreator < K , Arguments < any , T [ K ] > , Payload < T [ K ] > , Meta < T [ K ] > > }
14+
15+
16+ function defineMessages ( arg1 : any , arg2 ?: any ) : any {
17+ const
18+ ret : any = { } ,
19+ prefix : string = typeof arg1 === 'string' ? arg1 : '' ,
20+ config : any = typeof arg1 === 'string' ? arg2 : arg1 ,
21+ keys = Object . keys ( config )
22+
23+ for ( let i = 0 ; i < keys . length ; ++ i ) {
24+ const
25+ key = keys [ i ] ,
26+ type = ! prefix ? key : `${ prefix } /${ key } `
27+
28+ ret [ key ] = buildMessageCreator ( type , config [ key ] )
29+ }
30+
31+ return ret
32+ }
33+
34+ // --- locals -------------------------------------------------------
35+
736type Func < A extends any [ ] , R > = ( ...args : A ) => R
837
938type Arguments < A extends any [ ] , I extends MessageInitializer < any > >
@@ -27,20 +56,6 @@ type Meta<I extends MessageInitializer<any>>
2756 ? ReturnType < I [ 'meta' ] >
2857 : any )
2958
30- function defineMessages < T extends MessagesConfig > ( config : T ) :
31- { [ K in keyof T ] : MessageCreator < K , Arguments < any , T [ K ] > , Payload < T [ K ] > , Meta < T [ K ] > > } {
32-
33- const
34- ret : any = { } ,
35- keys = Object . keys ( config )
36-
37- for ( let i = 0 ; i < keys . length ; ++ i ) {
38- const key = keys [ i ]
39-
40- ret [ key ] = buildMessageCreator ( key , config [ key ] )
41- }
42-
43- return ret
44- }
59+ // --- exports ------------------------------------------------------
4560
4661export default defineMessages
0 commit comments