UNPKG

giantdb

Version:

Large object database in native JavaScript, with encryption support

45 lines (44 loc) 1.39 kB
/// <reference types="node" /> import { IOManager } from './iomanager.js'; import { Readable, Writable } from 'node:stream'; /** * A single database item. */ export declare class Item { readonly id: string; metadata: object; private readonly _ioManager; /** * Construct a new Item. * * @param id The item id. * @param ioManager The IO manager. * @param metadata An object containing item metadata. */ constructor(id: string, ioManager: IOManager, metadata: object); private _processStreamResult; /** * Obtain a read stream for this item. * * @param options Middleware options. * @returns A Promise that resolves to a Readable Stream. */ getReadable(options?: object): Promise<Readable>; /** * Obtain a write stream for this item. * * @param options Middleware options. * @returns A Promise that resolves to a Writable Stream. */ getWritable(options?: object): Promise<Writable>; /** * Save this item's current metadata. * * This must be called for the metadata to persist after modifications have been * made. Note that the metadata may also be saved on other occurrences (e.g. * when modified by middleware), but that is not guaranteed. * * @returns A Promise that resolves when done. */ saveMetadata(): Promise<void>; }