@@ -29,6 +29,7 @@ export abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonProv
29
29
30
30
private readonly _clientEventHandlers : Map < string | undefined , [ AnyProviderEvent , EventHandler ] [ ] > = new Map ( ) ;
31
31
protected _domainScopedProviders : Map < string , P > = new Map ( ) ;
32
+ protected _domainScopedContext : Map < string , EvaluationContext > = new Map ( ) ;
32
33
protected _clientEvents : Map < string | undefined , GenericEventEmitter < AnyProviderEvent > > = new Map ( ) ;
33
34
protected _runsOn : Paradigm ;
34
35
@@ -215,7 +216,7 @@ export abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonProv
215
216
216
217
if ( provider ?. status === ProviderStatus . NOT_READY && typeof provider . initialize === 'function' ) {
217
218
initializationPromise = provider
218
- . initialize ?.( this . _context )
219
+ . initialize ?.( domain ? this . _domainScopedContext . get ( domain ) ?? this . _context : this . _context )
219
220
?. then ( ( ) => {
220
221
// fetch the most recent event emitters, some may have been added during init
221
222
this . getAssociatedEventEmitters ( domain ) . forEach ( ( emitter ) => {
@@ -284,16 +285,15 @@ export abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonProv
284
285
this . _clientEvents . set ( domain , newEmitter ) ;
285
286
286
287
const clientProvider = this . getProviderForClient ( domain ) ;
287
- Object . values < AllProviderEvents > ( AllProviderEvents ) . forEach (
288
- ( eventType ) =>
289
- clientProvider . events ?. addHandler ( eventType , async ( details ) => {
290
- newEmitter . emit ( eventType , {
291
- ...details ,
292
- clientName : domain ,
293
- domain,
294
- providerName : clientProvider . metadata . name ,
295
- } ) ;
296
- } ) ,
288
+ Object . values < AllProviderEvents > ( AllProviderEvents ) . forEach ( ( eventType ) =>
289
+ clientProvider . events ?. addHandler ( eventType , async ( details ) => {
290
+ newEmitter . emit ( eventType , {
291
+ ...details ,
292
+ clientName : domain ,
293
+ domain,
294
+ providerName : clientProvider . metadata . name ,
295
+ } ) ;
296
+ } ) ,
297
297
) ;
298
298
299
299
return newEmitter ;
0 commit comments