JSPM

@worker-tools/stream-response

0.1.0-pre.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 476
  • Score
    100M100P100Q102247F
  • License MIT

Fetch API Response objects made from async generators. Build streaming HTML responses or SSE with JS sugar.

Package Exports

  • @worker-tools/stream-response

Readme

Stream Response

Fetch API Response objects made from async generators. Build streaming HTML responses or SSE with JS sugar.

Example:

async function* generate() {
  for await (const row of iterAllRows()) {
    yield `${row.join(',')}\n`
  }
}

router.get('/large.csv', () => new StreamResponse(generate(), { 
  headers: [['content-type', 'text/csv']] 
}))

Creating a SSE endpoint works much the same way:

async function* sse() {
  while (true) {
    await new Promise(r => setTimeout(r, 1000));
    yield 'data: hello\n\n';
  }
}

router.get('/sse', contentType(['text/event-stream']), (req, { type }) => {
  return new StreamResponse(sse(), { headers: [['content-type', type]] })
})

*[SSE]: Server Sent Events