MCPcopy Index your code
hub / github.com/Effect-TS/effect / fromReadableStreamByob

Function fromReadableStreamByob

packages/effect/src/internal/stream.ts:3297–3324  ·  view source on GitHub ↗
(
  ...args: [options: {
    readonly evaluate: LazyArg<ReadableStream<Uint8Array>>
    readonly onError: (error: unknown) => E
    readonly bufferSize?: number | undefined
    readonly releaseLockOnEnd?: boolean | undefined
  }] | [
    evaluate: LazyArg<ReadableStream<Uint8Array>>,
    onError: (error: unknown) => E,
    allocSize?: number | undefined
  ]
)

Source from the content-addressed store, hash-verified

3295 allocSize?: number
3296 ): Stream.Stream<Uint8Array, E>
3297} = <E>(
3298 ...args: [options: {
3299 readonly evaluate: LazyArg<ReadableStream<Uint8Array>>
3300 readonly onError: (error: unknown) => E
3301 readonly bufferSize?: number | undefined
3302 readonly releaseLockOnEnd?: boolean | undefined
3303 }] | [
3304 evaluate: LazyArg<ReadableStream<Uint8Array>>,
3305 onError: (error: unknown) => E,
3306 allocSize?: number | undefined
3307 ]
3308): Stream.Stream<Uint8Array, E> => {
3309 const evaluate = args.length === 1 ? args[0].evaluate : args[0]
3310 const onError = args.length === 1 ? args[0].onError : args[1]
3311 const allocSize = (args.length === 1 ? args[0].bufferSize : args[2]) ?? 4096
3312 const releaseLockOnEnd = args.length === 1 ? args[0].releaseLockOnEnd === true : false
3313 return unwrapScoped(Effect.map(
3314 Effect.acquireRelease(
3315 Effect.sync(() => evaluate().getReader({ mode: "byob" })),
3316 (reader) => releaseLockOnEnd ? Effect.sync(() => reader.releaseLock()) : Effect.promise(() => reader.cancel())
3317 ),
3318 (reader) =>
3319 catchAll(
3320 forever(readChunkStreamByobReader(reader, onError, allocSize)),
3321 (error) => error === EOF ? empty : fail(error)
3322 )
3323 ))
3324}
3325
3326const EOF = Symbol.for("effect/Stream/EOF")
3327

Callers

nothing calls this directly

Calls 6

syncMethod · 0.80
unwrapScopedFunction · 0.70
foreverFunction · 0.70
failFunction · 0.70
mapMethod · 0.65

Tested by

no test coverage detected