@owlmeans/web-db
v0.1.7
Published
IndexedDB-backed client database service for OwlMeans web applications.
Readme
@owlmeans/web-db
IndexedDB-backed client database service for OwlMeans web applications.
Overview
makeWebDbService(alias?)— creates an IndexedDB-backedClientDbServiceappendWebDbService(context, alias?)— registers the DB service in the context- Implements
ClientDb:get,set,has,del,eraseoveridb-keyval - Used internally by
@owlmeans/web-client'smakeContextto backclient-resourcestorage
Installation
bun add @owlmeans/web-dbUsage
This package is registered automatically when using makeContext from @owlmeans/web-client. Direct use is only needed for custom context setup:
import { appendWebDbService } from '@owlmeans/web-db'
appendWebDbService(context)Access the DB directly:
import { DEFAULT_ALIAS } from '@owlmeans/web-db'
import type { WebDbService } from '@owlmeans/web-db'
const dbService = context.service<WebDbService>(DEFAULT_ALIAS)
const db = await dbService.initialize('my-store')
await db.set('key', { value: 123 })
const record = await db.get<MyType>('key')
await db.del('key')API
makeWebDbService(alias?): WebDbService
Creates an IndexedDB service. alias defaults to DEFAULT_ALIAS.
appendWebDbService<C, T>(context, alias?): T
Registers the DB service in the context.
WebDbService
Extends ClientDbService with initialize(alias?) returning a ClientDb:
get<T>(id): Promise<T>set<T>(id, value): Promise<void>has(id): Promise<boolean>del(id): Promise<boolean>
Related Packages
@owlmeans/client-resource—ClientDbServiceinterface this implements@owlmeans/web-client— callsappendWebDbServiceinsidemakeContext
