Current section

Files

Jump to
gossamer src gossamer writable_stream default_controller.gleam
Raw

src/gossamer/writable_stream/default_controller.gleam

import gossamer/abort_signal.{type AbortSignal}
import gossamer/js_error.{type JsError}
/// A controller for a `WritableStream`'s underlying sink, passed to the
/// `Start`, `Write`, `Close`, and `Abort` callbacks. Used to signal stream
/// errors and access the abort signal.
///
/// See [WritableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController) on MDN.
///
@external(javascript, "./default_controller.type.ts", "DefaultController$")
pub type DefaultController
@external(javascript, "./default_controller.ffi.mjs", "signal")
pub fn signal(of controller: DefaultController) -> AbortSignal
/// Signals an error on the stream. Returns an error if the stream is
/// already closed or errored.
///
@external(javascript, "./default_controller.ffi.mjs", "error")
pub fn error(
controller: DefaultController,
reason reason: a,
) -> Result(Nil, JsError)