/** * @since 1.0.0 */ import type { PlatformError } from "@effect/platform/Error" import { SystemError } from "@effect/platform/Error" import type { Channel } from "effect/Channel" import type { Chunk } from "effect/Chunk" import type { LazyArg } from "effect/Function" import type * as Sink from "effect/Sink" import type { Writable } from "stream" import * as internal from "./internal/sink.js" import type { FromWritableOptions } from "./NodeStream.js" /** * @category constructor * @since 1.0.0 */ export const fromWritable: ( evaluate: LazyArg, onError: (error: unknown) => E, options?: FromWritableOptions ) => Sink.Sink = internal.fromWritable /** * @category constructor * @since 1.0.0 */ export const fromWritableChannel: ( writable: LazyArg, onError: (error: unknown) => OE, options?: FromWritableOptions ) => Channel, Chunk, IE | OE, IE, void, unknown> = internal.fromWritableChannel /** * @category stdio * @since 1.0.0 */ export const stdout: Sink.Sink = fromWritable( () => process.stdout, (cause) => new SystemError({ module: "Stream", method: "stdout", reason: "Unknown", cause }) ) /** * @category stdio * @since 1.0.0 */ export const stderr: Sink.Sink = fromWritable( () => process.stderr, (cause) => new SystemError({ module: "Stream", method: "stderr", reason: "Unknown", cause }) ) /** * @category stdio * @since 1.0.0 */ export const stdin: Sink.Sink = fromWritable( () => process.stdin, (cause) => new SystemError({ module: "Stream", method: "stdin", reason: "Unknown", cause }) )