import type { RxStorage, RxStorageInstanceCreationParams } from 'nxdb-old/src/types'; import { ensureNoBooleanIndex, RxStorageDexieStatics, RX_STORAGE_NAME_DEXIE } from 'nxdb-old/src/plugins/storage-dexie/dexie-helper'; import type { DexieSettings, DexieStorageInternals } from 'nxdb-old/src/types/plugins/dexie'; import { createDexieStorageInstance, RxStorageInstanceDexie } from 'nxdb-old/src/plugins/storage-dexie/rx-storage-instance-dexie'; import { ensureRxStorageInstanceParamsAreCorrect } from 'nxdb-old/src/rx-storage-helper'; export class RxStorageDexie implements RxStorage { public name = RX_STORAGE_NAME_DEXIE; public statics = RxStorageDexieStatics; constructor( public settings: DexieSettings ) { } public createStorageInstance( params: RxStorageInstanceCreationParams ): Promise> { ensureRxStorageInstanceParamsAreCorrect(params); ensureNoBooleanIndex(params.schema); return createDexieStorageInstance(this, params, this.settings); } } export function getRxStorageDexie( settings: DexieSettings = {} ): RxStorageDexie { const storage = new RxStorageDexie(settings); return storage; }