File size: 980 Bytes
d47b053
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { getSupabaseClient } from '../../database/client'
import { isStudioDatabaseReady } from '../../database/config'
import { createLogger } from '../../utils/logger'
import { createInMemoryStudioPersistence } from './in-memory-studio-persistence'
import { createSupabaseStudioPersistence } from './supabase-studio-persistence'
import type { StudioPersistence } from './studio-persistence'

const logger = createLogger('StudioPersistence')

export function createDefaultStudioPersistence(): StudioPersistence {
  if (!isStudioDatabaseReady()) {
    logger.info('Studio persistence provider: in-memory')
    return createInMemoryStudioPersistence()
  }

  const client = getSupabaseClient()
  if (!client) {
    logger.warn('Studio DB requested but Supabase client is unavailable, falling back to in-memory persistence')
    return createInMemoryStudioPersistence()
  }

  logger.info('Studio persistence provider: supabase')
  return createSupabaseStudioPersistence(client)
}