giantdb
Version:
Large object database in native JavaScript, with encryption support
45 lines (44 loc) • 1.39 kB
TypeScript
/// <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>;
}