meros
Version:
A fast 642B utility that makes reading multipart responses simple
39 lines (36 loc) • 1.15 kB
TypeScript
import type { IncomingMessage } from 'node:http';
import type { Options, Part } from 'meros';
export { Options, Part } from 'meros';
/**
* Yield immediately for every part made available on the response. If the `content-type` of the
* response isn't a multipart body, then we'll resolve with {@link IncomingMessage}.
*
* @example
*
* ```js
* const response = await new Promise((resolve) => {
* const request = http.get(`http://my-domain/mock-ep`, (response) => {
* resolve(response);
* });
* request.end();
* });
*
* const parts = await meros(response);
*
* for await (const part of parts) {
* // do something with this part
* }
* ```
*/
export function meros<T = object>(
response: IncomingMessage,
options: { multiple: true },
): Promise<IncomingMessage | AsyncGenerator<ReadonlyArray<Part<T, Buffer>>>>;
export function meros<T = object>(
response: IncomingMessage,
options?: { multiple: false },
): Promise<IncomingMessage | AsyncGenerator<Part<T, Buffer>>>;
export function meros<T = object>(
response: IncomingMessage,
options?: Options,
): Promise<IncomingMessage | AsyncGenerator<Part<T, Buffer>>>;