MCPcopy Create free account
hub / github.com/Effect-TS/effect / stream

Function stream

packages/platform/browser/src/BrowserHttpClient.ts:305–332  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

303 }
304
305 get stream(): Stream.Stream<Uint8Array, E> {
306 return Stream.callback<Uint8Array, E>((queue) => {
307 let offset = 0
308 const onReadyStateChange = () => {
309 if (this.source.readyState === 3) {
310 const encoded = encoder.encode(this.source.responseText.slice(offset))
311 Queue.offerUnsafe(queue, encoded)
312 offset = this.source.responseText.length
313 } else if (this.source.readyState === 4) {
314 const encoded = encoder.encode(this.source.responseText.slice(offset))
315 if (offset < this.source.responseText.length) {
316 Queue.offerUnsafe(queue, encoded)
317 }
318 Queue.endUnsafe(queue)
319 }
320 }
321 const onError = () => {
322 Queue.failCauseUnsafe(queue, Cause.fail(this.onError(this.source.statusText)))
323 }
324 this.source.addEventListener("readystatechange", onReadyStateChange)
325 this.source.addEventListener("error", onError)
326 onReadyStateChange()
327 return Effect.sync(() => {
328 this.source.removeEventListener("readystatechange", onReadyStateChange)
329 this.source.removeEventListener("error", onError)
330 })
331 })
332 }
333
334 _arrayBufferEffect: Effect.Effect<ArrayBuffer, E> | undefined
335 get arrayBuffer(): Effect.Effect<ArrayBuffer, E> {

Callers

nothing calls this directly

Calls 4

onReadyStateChangeFunction · 0.85
removeEventListenerMethod · 0.80
addEventListenerMethod · 0.65
syncMethod · 0.45

Tested by

no test coverage detected