import { type DatastoreProvider, type DocumentCollection, type BaseDocument, setDatastore, CosmosDatastoreProvider, MemoryDatastoreProvider, } from '@bytelyst/datastore'; import { config } from './config.js'; let provider: DatastoreProvider | null = null; export function initDatastore(): DatastoreProvider { if (provider) { return provider; } if (config.DB_PROVIDER === 'memory') { provider = new MemoryDatastoreProvider(); } else { provider = new CosmosDatastoreProvider(); } setDatastore(provider); return provider; } export function setProvider(nextProvider: DatastoreProvider): void { provider = nextProvider; setDatastore(nextProvider); } export function getCollection( name: string, partitionKeyPath: string = '/productId' ): DocumentCollection { if (!provider) { initDatastore(); } return provider!.getCollection(name, partitionKeyPath); } export function resetDatastoreProvider(): void { provider = null; }