UNPKG

giantdb

Version:

Large object database in native JavaScript, with encryption support

30 lines (29 loc) 1.3 kB
/// <reference types="node" /> import { Readable, Stream, Writable } from 'node:stream'; /** * Describes a result object as returned by a middleware transform function. * When either stream or metadata changed as part of the middleware function, such a result object containing the * new instance must be passed to the next handler. */ export interface MiddlewareResult<S extends Stream> { stream?: S; metadata?: object; } /** * Call this function to complete the middleware transform. */ export type MiddlewareNextFn<S extends Stream> = (err?: Error | undefined | null, result?: MiddlewareResult<S>) => void; /** * A transform function as part of a middleware. * Calling next is mandatory, otherwise processing cannot continue. If needed, pass an error as the first argument. * When either stream or metadata changed as part of the middleware function, a result object containing the new * instance must be passed to the callback. */ export type MiddlewareTransformFn<S extends Stream> = (stream: S, metadata: object, options: object | undefined | null, next: MiddlewareNextFn<S>) => void; /** * The interface for middlewares. */ export interface Middleware { transformReadable?: MiddlewareTransformFn<Readable>; transformWritable?: MiddlewareTransformFn<Writable>; }