diff --git a/apps/ai-hero/src/flags/flags-adapter.ts b/apps/ai-hero/src/flags/flags-adapter.ts index 933174e8a..d6497900c 100644 --- a/apps/ai-hero/src/flags/flags-adapter.ts +++ b/apps/ai-hero/src/flags/flags-adapter.ts @@ -10,24 +10,20 @@ export const getFlagKey = (key: string): string => { return `${FLAG_PREFIX}${env}:${key}` } -let defaultRedisAdapter: ReturnType +function createRedisAdapter(): Adapter { + return { + origin(key: string) { + return `${env.COURSEBUILDER_URL}/admin/flags/${key}` + }, + async decide({ key }: { key: string }): Promise { + // Strip environment prefix if present since getFlagKey will add it + const [, baseKey = key] = key.split(':') + const redisKey = getFlagKey(baseKey) + const value = await redis.get(redisKey) -function createRedisAdapter() { - return function redisAdapter(): Adapter { - return { - origin(key: string) { - return `${env.COURSEBUILDER_URL}/admin/flags/${key}` - }, - async decide({ key }: { key: string }): Promise { - // Strip environment prefix if present since getFlagKey will add it - const [, baseKey = key] = key.split(':') - const redisKey = getFlagKey(baseKey) - const value = await redis.get(redisKey) - - // Handle both string and boolean values - return value === true || value === 'true' || value === '1' - }, - } + // Handle both string and boolean values + return value === true || value === 'true' || value === '1' + }, } } @@ -35,9 +31,5 @@ function createRedisAdapter() { * A default Redis adapter that can be used directly */ export function redisAdapter(): Adapter { - if (!defaultRedisAdapter) { - defaultRedisAdapter = createRedisAdapter() - } - - return defaultRedisAdapter() + return createRedisAdapter() }