learning_ai_notes/backend/src/lib/datastore.ts
saravanakumardb1 cc91e3dac7 fix(backend): use config.DB_PROVIDER instead of process.env.DB_PROVIDER in datastore.ts
- Reads validated DB_PROVIDER from Zod config instead of raw env
- Removes stale isTest fallback logic (now handled by config defaults)
2026-03-20 08:29:36 -07:00

47 lines
1.0 KiB
TypeScript

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<T extends BaseDocument = BaseDocument>(
name: string,
partitionKeyPath: string = '/productId'
): DocumentCollection<T> {
if (!provider) {
initDatastore();
}
return provider!.getCollection<T>(name, partitionKeyPath);
}
export function resetDatastoreProvider(): void {
provider = null;
}