@@ -10,15 +10,13 @@ import { BanditVariation, BanditParameters, Flag, BanditReference } from './inte
1010// Requests AND stores flag configurations
1111export default class ConfigurationRequestor {
1212 private banditModelVersions : string [ ] = [ ] ;
13- private readonly configuration : StoreBackedConfiguration ;
13+ private configuration : StoreBackedConfiguration ;
1414
1515 constructor (
1616 private readonly httpClient : IHttpClient ,
17- private readonly flagConfigurationStore : IConfigurationStore < Flag > ,
18- private readonly banditVariationConfigurationStore : IConfigurationStore <
19- BanditVariation [ ]
20- > | null ,
21- private readonly banditModelConfigurationStore : IConfigurationStore < BanditParameters > | null ,
17+ private flagConfigurationStore : IConfigurationStore < Flag > ,
18+ private banditVariationConfigurationStore : IConfigurationStore < BanditVariation [ ] > | null ,
19+ private banditModelConfigurationStore : IConfigurationStore < BanditParameters > | null ,
2220 ) {
2321 this . configuration = new StoreBackedConfiguration (
2422 this . flagConfigurationStore ,
@@ -27,6 +25,26 @@ export default class ConfigurationRequestor {
2725 ) ;
2826 }
2927
28+ /**
29+ * Updates the configuration stores and recreates the StoreBackedConfiguration
30+ */
31+ public setConfigurationStores (
32+ flagConfigurationStore : IConfigurationStore < Flag > ,
33+ banditVariationConfigurationStore : IConfigurationStore < BanditVariation [ ] > | null ,
34+ banditModelConfigurationStore : IConfigurationStore < BanditParameters > | null ,
35+ ) : void {
36+ this . flagConfigurationStore = flagConfigurationStore ;
37+ this . banditVariationConfigurationStore = banditVariationConfigurationStore ;
38+ this . banditModelConfigurationStore = banditModelConfigurationStore ;
39+
40+ // Recreate the configuration with the new stores
41+ this . configuration = new StoreBackedConfiguration (
42+ this . flagConfigurationStore ,
43+ this . banditVariationConfigurationStore ,
44+ this . banditModelConfigurationStore ,
45+ ) ;
46+ }
47+
3048 public isFlagConfigExpired ( ) : Promise < boolean > {
3149 return this . flagConfigurationStore . isExpired ( ) ;
3250 }
0 commit comments