(
...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
]
)
| 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 | |
| 3326 | const EOF = Symbol.for("effect/Stream/EOF") |
| 3327 |
nothing calls this directly
no test coverage detected