Skip to content
Effect Days 2026 Get your ticket

NodeMultipartParser

Node.js streams adapter for the low-level multipart parser.

6 exports Added in v4.0.0 Source

Constructors

make

Added in v4.0.0 Source

Creates a Node.js multipart parser stream.

Signature

declare function make(config: NodeConfig): MultipartStream

Models

Field interface

Added in v4.0.0 Source

A parsed multipart field.

Signature

interface Field {
readonly _tag: "Field";
readonly info: PartInfo;
readonly value: Uint8Array;
}

FileStream

Added in v4.0.0 Source

A readable stream containing a parsed multipart file.

Signature

declare class FileStream extends Readable {
constructor(info: PartInfo, parent: MultipartStream);
readonly _tag: "File";
readonly filename: string | undefined;
readonly info: PartInfo;
_read(_size: number): void;
}

A Node.js duplex stream that parses multipart input.

Signature

declare class MultipartStream extends Duplex {
constructor(config: NodeConfig);
_canWrite: boolean;
_resume(): void;
[asyncIterator](): AsyncIterator<Part>;
on(event: "field", listener: (field: Field) => void): this;
on(event: "file", listener: (file: FileStream) => void): this;
on(event: "close", listener: () => void): this;
on(event: "data", listener: (part: Part) => void): this;
on(event: "drain", listener: () => void): this;
on(event: "end", listener: () => void): this;
on(event: "error", listener: (err: MultipartError) => void): this;
on(event: "finish", listener: () => void): this;
on(event: "pause", listener: () => void): this;
on(event: "pipe", listener: (src: Readable) => void): this;
on(event: "readable", listener: () => void): this;
on(event: "resume", listener: () => void): this;
on(event: "unpipe", listener: (src: Readable) => void): this;
on(event: string | symbol, listener: (...args: Array<any>) => void): this;
read(size?: number): Part | null;
static from(src: string | ReadableStream | WritableStream | Blob | Iterable<any, any, any> | AsyncIterable<any, any, any> | (source: AsyncIterable<any>) => AsyncIterable<any> | (source: AsyncIterable<any>) => Promise<void> | Promise<any> | ReadableWritablePair<any, any> | ReadableStream<any> | WritableStream<any>): Duplex;
static fromWeb(duplexStream: ReadableWritablePair, options?: Pick<DuplexOptions<Duplex>, "signal" | "allowHalfOpen" | "decodeStrings" | "encoding" | "highWaterMark" | "objectMode">): Duplex;
static toWeb(streamDuplex: ReadWriteStream, options?: DuplexToWebOptions): ReadableWritablePair;
}

NodeConfig type

Added in v4.0.0 Source

Configuration for the Node.js multipart parser.

Signature

type NodeConfig = Omit<BaseConfig, "headers"> & {
readonly headers: IncomingHttpHeaders;
}

Part type

Added in v4.0.0 Source

A part emitted by the Node.js multipart parser.

Signature

type Part = Field | FileStream