const PREFIX = 'bluebell' function defineScope(scope: S, keys: K) { const entries = keys.map((key) => { const value = `${PREFIX}:${scope}:${key.toLowerCase().replace(/_/g, '-')}` return [key, value] as const }) return Object.fromEntries(entries) as { [P in K[number]]: `${typeof PREFIX}:${S}:${Lowercase}` } } export const KEYS = { THEME: defineScope('theme', [ 'FOLLOW_SYSTEM_THEME', 'PREFERRED_LIGHT_THEME', 'PREFERRED_DARK_THEME', 'CURRENT_MODE', 'ACCENT_COLOUR', ]), STATE: defineScope('state', ['ACTIVE_FEED_URI', 'WOKE_DISMISSED', 'INTRO_COMPLETE']), SETTINGS: defineScope('settings', ['BASE']), AUTH: defineScope('auth', ['SESSION', 'ACTIVE_DID']), } export default KEYS