UNPKG

@idxdb/promised

Version:

@idxdb/promised wraps the IndexedDB API. It allows you to easily store and retrieve data in an indexed db database using async/await syntax, making it easier to integrate with your existing codebase.

67 lines (66 loc) 1.91 kB
import { ValueCursor } from '../component/value-cursor.js'; import { KeyCursor } from '../component/key-cursor.js'; import { requestResolver } from '../shared/request-resolver.js'; export class StoreIndex { ctx; constructor(ctx) { this.ctx = ctx; } get keyPath() { return this.ctx.index.keyPath; } get multiEntry() { return this.ctx.index.multiEntry; } get name() { return this.ctx.index.name; } get unique() { return this.ctx.index.unique; } get objectStore() { return this.ctx.objectStore; } count(query) { const request = this.ctx.index.count(query); return requestResolver(request); } get(key) { const request = this.ctx.index.get(key); return requestResolver(request); } getAll(query, count) { const request = this.ctx.index.getAll(query, count); return requestResolver(request); } getAllKeys(query, count) { const request = this.ctx.index.getAllKeys(query, count); return requestResolver(request); } getKey(key) { const request = this.ctx.index.getKey(key); return requestResolver(request); } openCursor(query, direction) { const request = this.ctx.index.openCursor(query, direction); return new ValueCursor({ request, direction, source: new StoreIndex({ index: this.ctx.index, objectStore: this.ctx.objectStore, }), }); } openKeyCursor(query, direction) { const request = this.ctx.index.openKeyCursor(query, direction); return new KeyCursor({ request, direction, source: new StoreIndex({ index: this.ctx.index, objectStore: this.ctx.objectStore, }), }); } }