rxdb
Version:
A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/
43 lines (36 loc) • 1.24 kB
text/typescript
import type {
RxStorage,
RxStorageInstanceCreationParams
} from '../../types/index.d.ts';
import {
RX_STORAGE_NAME_DEXIE
} from './dexie-helper.ts';
import type {
DexieSettings,
DexieStorageInternals
} from '../../types/plugins/dexie.d.ts';
import {
createDexieStorageInstance,
RxStorageInstanceDexie
} from './rx-storage-instance-dexie.ts';
import { ensureRxStorageInstanceParamsAreCorrect } from '../../rx-storage-helper.ts';
import { RXDB_VERSION } from '../utils/utils-rxdb-version.ts';
export class RxStorageDexie implements RxStorage<DexieStorageInternals, DexieSettings> {
public name = RX_STORAGE_NAME_DEXIE;
public readonly rxdbVersion = RXDB_VERSION;
constructor(
public settings: DexieSettings
) { }
public createStorageInstance<RxDocType>(
params: RxStorageInstanceCreationParams<RxDocType, DexieSettings>
): Promise<RxStorageInstanceDexie<RxDocType>> {
ensureRxStorageInstanceParamsAreCorrect(params);
return createDexieStorageInstance(this, params, this.settings);
}
}
export function getRxStorageDexie(
settings: DexieSettings = {}
): RxStorageDexie {
const storage = new RxStorageDexie(settings);
return storage;
}