@@ -85,9 +85,9 @@ export type Endpoint = {
85
85
discoveryMetadata : Omit < discovery . Endpoint , "protocolMode" > ;
86
86
87
87
/**
88
- * Default codec for journal entries .
88
+ * Codec provider to use for journal values .
89
89
*/
90
- journalValueCodec ?: JournalValueCodec ;
90
+ journalValueCodec ?: Promise < JournalValueCodec > ;
91
91
} ;
92
92
93
93
export class EndpointBuilder {
@@ -100,7 +100,7 @@ export class EndpointBuilder {
100
100
private loggerTransport : LoggerTransport = defaultLoggerTransport ;
101
101
private keySet : string [ ] = [ ] ;
102
102
private defaultServiceOptions : DefaultServiceOptions = { } ;
103
- private journalValueCodec ?: JournalValueCodec ;
103
+ private journalValueCodecProvider ?: ( ) => Promise < JournalValueCodec > ;
104
104
105
105
public bind < P extends string , M > (
106
106
definition :
@@ -128,8 +128,10 @@ export class EndpointBuilder {
128
128
this . loggerTransport = newLogger ;
129
129
}
130
130
131
- public setJournalValueCodec ( codec : JournalValueCodec ) {
132
- this . journalValueCodec = codec ;
131
+ public setJournalValueCodecProvider (
132
+ codecProvider : ( ) => Promise < JournalValueCodec >
133
+ ) {
134
+ this . journalValueCodecProvider = codecProvider ;
133
135
}
134
136
135
137
public build ( ) : Endpoint {
@@ -196,7 +198,9 @@ export class EndpointBuilder {
196
198
rlog,
197
199
components,
198
200
discoveryMetadata,
199
- journalValueCodec : this . journalValueCodec ,
201
+ journalValueCodec : this . journalValueCodecProvider
202
+ ? this . journalValueCodecProvider ( )
203
+ : undefined ,
200
204
} ;
201
205
}
202
206
}
0 commit comments