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