UNPKG

acp-sdk

Version:

Agent Communication Protocol SDK

59 lines (56 loc) 1.68 kB
'use strict'; var stream = require('eventsource-parser/stream'); var errors_cjs = require('./errors.cjs'); async function createEventSource({ url, fetch = globalThis.fetch, options }) { const response = await fetch(url, getFetchOptions(options)); return { response, async *consume() { if (response.status === 204) { throw new errors_cjs.SSEError("Server sent HTTP 204, not connecting", response); } if (!response.ok) { throw new errors_cjs.SSEError( `Non-200 status code (${response.status})`, response ); } if (!response.headers.get("content-type")?.startsWith("text/event-stream")) { throw new errors_cjs.SSEError( 'Invalid content type, expected "text/event-stream"', response ); } if (!response.body) { throw new errors_cjs.SSEError("Missing response body", response); } const stream$1 = response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new stream.EventSourceParserStream({ onError: "terminate" })); try { for await (const message of stream$1) { yield message; } } catch (e) { const err = e; if (err.name !== "AbortError") { throw new errors_cjs.SSEError(err.message, response, { cause: err }); } else { throw err; } } } }; } function getFetchOptions(options) { return { ...options, headers: { Accept: "text/event-stream", ...options?.headers }, cache: "no-store" }; } exports.createEventSource = createEventSource; //# sourceMappingURL=sse.cjs.map //# sourceMappingURL=sse.cjs.map