it-multipart
Version:
Async iterable http multipart message parser
44 lines • 1.24 kB
TypeScript
/**
* @packageDocumentation
*
* Allows iterating over multipart messages found in a HTTP request/
*
* @example
*
* ```javascript
* import http from 'http'
* import multipart from 'it-multipart'
*
* http.createServer(async (req, res) => {
* if (req.method === 'POST' && req.headers['content-type']) {
* for await (const part of multipart(req)) {
* console.log(`part with HTTP headers ${part.headers}`)
*
* // nb. part.body must be consumed before the next part is emitted
* for await (const chunk of part.body) {
* console.log(`part with content ${part.name} contents:`, chunk.toString())
* }
* }
*
* console.log('finished parsing')
* res.writeHead(200)
* res.end()
* }
*
* res.writeHead(404)
* res.end()
* }).listen(5001, () => {
* console.log('server listening on port 5001')
* })
* ```
*/
import type { IncomingMessage, IncomingHttpHeaders } from 'http';
export interface Part {
headers: IncomingHttpHeaders;
body: AsyncIterable<Uint8Array>;
}
/**
* Streaming multipart HTTP message parser
*/
export default function multipart(request: IncomingMessage): AsyncGenerator<Part, void, undefined>;
//# sourceMappingURL=index.d.ts.map