effect-io-ai

Package: effect
Module: Stream

Stream.Services

Extract the services type from a Stream type.

Example (Extracting the services type from a Stream type)

import type { Stream } from "effect"

interface Database {
  query: (sql: string) => unknown
}
type NumberStream = Stream.Stream<number, string, { db: Database }>
type RequiredServices = Stream.Services<NumberStream>
// RequiredServices is { db: Database }

Signature

type Services<T> = [T] extends [Stream<infer _A, infer _E, infer _R>] ? _R
  : never

Source

Since v4.0.0