UNPKG

rxdb

Version:

A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/

53 lines (44 loc) 1.65 kB
import { ensureRxStorageInstanceParamsAreCorrect } from '../../rx-storage-helper.ts'; import type { RxStorageInstanceCreationParams } from '../../types/index.d.ts'; import { RXDB_VERSION } from '../utils/utils-rxdb-version.ts'; import type { RxStorageMemory, RxStorageMemoryInstanceCreationOptions, RxStorageMemorySettings } from './memory-types.ts'; import { createMemoryStorageInstance, RxStorageInstanceMemory } from './rx-storage-instance-memory.ts'; /** * Keep the state even when the storage instance is closed. * This makes it easier to use the memory storage * to test filesystem-like and multiInstance behaviors. */ const COLLECTION_STATES = new Map(); export function getRxStorageMemory( settings: RxStorageMemorySettings = {} ): RxStorageMemory { const storage: RxStorageMemory = { name: 'memory', rxdbVersion: RXDB_VERSION, collectionStates: COLLECTION_STATES, createStorageInstance<RxDocType>( params: RxStorageInstanceCreationParams<RxDocType, RxStorageMemoryInstanceCreationOptions> ): Promise<RxStorageInstanceMemory<RxDocType>> { ensureRxStorageInstanceParamsAreCorrect(params); const useSettings = Object.assign( {}, settings, params.options ); return createMemoryStorageInstance(this, params, useSettings); } }; return storage; } export * from './memory-helper.ts'; export * from './binary-search-bounds.ts'; export * from './memory-types.ts'; export * from './memory-indexes.ts'; export * from './rx-storage-instance-memory.ts';