import { BanditParameters, BanditVariation, Environment, Flag, IObfuscatedPrecomputedBandit, PrecomputedFlag, } from '../interfaces'; import { IConfigurationStore } from './configuration-store'; export type Entry = | Flag | BanditVariation[] | BanditParameters | PrecomputedFlag | IObfuscatedPrecomputedBandit; export async function hydrateConfigurationStore( configurationStore: IConfigurationStore | null, response: { entries: Record; environment: Environment; createdAt: string; format: string; salt?: string; }, ): Promise { if (configurationStore) { const didUpdate = await configurationStore.setEntries(response.entries); if (didUpdate) { configurationStore.setEnvironment(response.environment); configurationStore.setConfigFetchedAt(new Date().toISOString()); configurationStore.setConfigPublishedAt(response.createdAt); configurationStore.setFormat(response.format); configurationStore.salt = response.salt; } return didUpdate; } return false; }