UNPKG

datastore-level

Version:

Datastore implementation with level(up|down) backend

73 lines 2.91 kB
/** * @packageDocumentation * * A Datastore implementation that uses a flavour of [Level](https://leveljs.org/) as a backend. * * This module is targetted at Node.js. It is possible to use it in a browser but you should probably use IDBDatastore instead. * * @example * * ```js * import { LevelDatastore } from 'datastore-level' * * // Default using level as backend for node or the browser * const store = new LevelDatastore('path/to/store') * * // another leveldown compliant backend like memory-level * const memStore = new LevelDatastore( * new MemoryLevel({ * keyEncoding: 'utf8', * valueEncoding: 'view' * }) * ) * ``` * * ## Browser Shimming Leveldown * * `LevelStore` uses the `level` module to automatically use `level` if a modern bundler is used which can detect bundle targets based on the `pkg.browser` property in your `package.json`. * * If you are using a bundler that does not support `pkg.browser`, you will need to handle the shimming yourself, as was the case with versions of `LevelStore` 0.7.0 and earlier. * * ## Database names * * `level-js@3` changed the database prefix from `IDBWrapper-` to `level-js-`, so please specify the old prefix if you wish to continue using databases created using `datastore-level` prior to `v0.12.0`. E.g. * * ```javascript * import leveljs from 'level-js' * import browserStore = new LevelDatastore( * new Level('my/db/name', { * prefix: 'IDBWrapper-' * }) * }) * ``` * * More information: [https://github.com/Level/level-js/blob/master/UPGRADING.md#new-database-prefix](https://github.com/Level/level-js/blob/99831913e905d19e5f6dee56d512b7264fbed7bd/UPGRADING.md#new-database-prefix) */ import { BaseDatastore } from 'datastore-core'; import { Key } from 'interface-datastore'; import { Level } from 'level'; import type { Batch, KeyQuery, Pair, Query } from 'interface-datastore'; import type { AbortOptions } from 'interface-store'; import type { DatabaseOptions, OpenOptions } from 'level'; /** * A datastore backed by leveldb */ export declare class LevelDatastore extends BaseDatastore { db: Level<string, Uint8Array>; private readonly opts; constructor(path: string | Level<string, Uint8Array>, opts?: DatabaseOptions<string, Uint8Array> & OpenOptions); open(): Promise<void>; put(key: Key, value: Uint8Array, options?: AbortOptions): Promise<Key>; get(key: Key, options?: AbortOptions): Promise<Uint8Array>; has(key: Key, options?: AbortOptions): Promise<boolean>; delete(key: Key, options?: AbortOptions): Promise<void>; close(): Promise<void>; batch(): Batch; query(q: Query, options?: AbortOptions): AsyncIterable<Pair>; queryKeys(q: KeyQuery, options?: AbortOptions): AsyncIterable<Key>; _query(opts: { values: boolean; prefix?: string; }): AsyncIterable<Pair>; } //# sourceMappingURL=index.d.ts.map