UNPKG

giantdb

Version:

Large object database in native JavaScript, with encryption support

49 lines (48 loc) 1.93 kB
/// <reference types="node" /> import { Readable, Writable } from 'node:stream'; import { TransformResult } from './transformable.js'; import { Middleware } from './middleware.js'; /** * Manager for middlewares. */ export declare class MiddlewareManager { private readonly middlewares; constructor(); /** * Register a new middleware. * * @param middleware The middleware. */ register(middleware: Middleware): void; /** * Transform the given stream and metadata by applying every middleware's * 'transformReadable' function. * * The result is an object with the keys 'stream', 'metadata' and * 'metadataChanged'. The first two are the respective transformation results, * while the third indicates whether the metadata was touched at all (to help * with optimizations). * * @param stream The base Readable Stream. * @param meta The item metadata. * @param options The user-provided options object. * @returns A Promise that resolves to a transformation result. */ transformReadable(stream: Readable, meta: object, options?: object): Promise<TransformResult<Readable>>; /** * Transform the given stream and metadata by applying every middleware's * 'transformWritable' function. * * The result is an object with the keys 'stream', 'metadata' and * 'metadataChanged'. The first two are the respective transformation results, * while the third indicates whether the metadata was touched at all (to help * with optimizations). * * @param stream The base Writable Stream. * @param meta The item metadata. * @param options The user-provided options object. * @returns A Promise that resolves to a transformation result. */ transformWritable(stream: Writable, meta: object, options?: object): Promise<TransformResult<Writable>>; private _transform; }