MCPcopy
hub / github.com/Effect-TS/effect / stream

Function stream

packages/platform-browser/src/internal/httpClient.ts:217–242  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

215 }
216
217 get stream(): Stream.Stream<Uint8Array, E> {
218 return Stream.async<Uint8Array, E>((emit) => {
219 let offset = 0
220 const onReadyStateChange = () => {
221 if (this.source.readyState === 3) {
222 emit.single(encoder.encode(this.source.responseText.slice(offset)))
223 offset = this.source.responseText.length
224 } else if (this.source.readyState === 4) {
225 if (offset < this.source.responseText.length) {
226 emit.single(encoder.encode(this.source.responseText.slice(offset)))
227 }
228 emit.end()
229 }
230 }
231 const onError = () => {
232 emit.fail(this.onError(this.source.statusText))
233 }
234 this.source.addEventListener("readystatechange", onReadyStateChange)
235 this.source.addEventListener("error", onError)
236 onReadyStateChange()
237 return Effect.sync(() => {
238 this.source.removeEventListener("readystatechange", onReadyStateChange)
239 this.source.removeEventListener("error", onError)
240 })
241 })
242 }
243
244 _arrayBufferEffect: Effect.Effect<ArrayBuffer, E> | undefined
245 get arrayBuffer(): Effect.Effect<ArrayBuffer, E> {

Callers

nothing calls this directly

Calls 4

onReadyStateChangeFunction · 0.85
addEventListenerMethod · 0.80
syncMethod · 0.80
removeEventListenerMethod · 0.80

Tested by

no test coverage detected