{"version":3,"file":"in-memory-adapter.cjs","names":[],"sources":["../../src/feature-flags/in-memory-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\nexport interface InMemoryFlagsOptions {\n    initial?: Record<string, FlagValue>;\n}\n\n/**\n * Trivial in-memory adapter. Suitable for tests, local development, or as a\n * fallback wrapping the real provider while it loads.\n */\nexport function createInMemoryFlags(options: InMemoryFlagsOptions = {}): FeatureFlagsAdapter & {\n    set: (key: string, value: FlagValue) => void;\n} {\n    const flags: Record<string, FlagValue> = { ...(options.initial ?? {}) };\n    const listeners = new Set<() => void>();\n\n    function notify(): void {\n        for (const listener of listeners) listener();\n    }\n\n    return {\n        isEnabled(key, defaultValue = false) {\n            return key in flags ? Boolean(flags[key]) : defaultValue;\n        },\n        get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n            return (key in flags ? (flags[key] as T) : (defaultValue as T)) as T;\n        },\n        onChange(listener) {\n            listeners.add(listener);\n            return () => listeners.delete(listener);\n        },\n        set(key, value) {\n            flags[key] = value;\n            notify();\n        },\n    };\n}\n"],"mappings":"AAUA,SAAgB,EAAoB,EAAgC,CAAC,EAEnE,CACE,IAAM,EAAmC,CAAE,GAAI,EAAQ,SAAW,CAAC,CAAG,EAChE,EAAY,IAAI,IAEtB,SAAS,GAAe,CACpB,IAAK,IAAM,KAAY,EAAW,EAAS,CAC/C,CAEA,MAAO,CACH,UAAU,EAAK,EAAe,GAAO,CACjC,OAAO,KAAO,EAAQ,EAAQ,EAAM,GAAQ,CAChD,EACA,IAAqC,EAAa,EAAqB,CACnE,OAAQ,KAAO,EAAS,EAAM,GAAc,CAChD,EACA,SAAS,EAAU,CAEf,OADA,EAAU,IAAI,CAAQ,MACT,EAAU,OAAO,CAAQ,CAC1C,EACA,IAAI,EAAK,EAAO,CACZ,EAAM,GAAO,EACb,EAAO,CACX,CACJ,CACJ"}