Hyperlinkv0.8.0-beta.28

Hyperlink

Hyperlink.InjectLocaltypesrc/Hyperlink.ts:1752
InjectLocal<T, Self>

Inject the Local capability into a service member's requirement channel — how a fromService local member surfaces. An Effect/Stream-returning member (or a function to one) keeps its shape and gains Local<Self> in its requirements; any other value is obtained via Effect<T, never, Local<Self>>. Regular (local) layers satisfy Local; a client layer can't, so calling a local on a client is a compile error.

Source src/Hyperlink.ts:17529 lines
export type InjectLocal<T, Self> = T extends Effect.Effect<infer A, infer E, infer R>
  ? Effect.Effect<A, E, R | Local<Self>>
  : T extends Stream.Stream<infer A, infer E, infer R>
    ? Stream.Stream<A, E, R | Local<Self>>
    : T extends (...args: infer Args) => Effect.Effect<infer A, infer E, infer R>
      ? (...args: Args) => Effect.Effect<A, E, R | Local<Self>>
      : T extends (...args: infer Args) => Stream.Stream<infer A, infer E, infer R>
        ? (...args: Args) => Stream.Stream<A, E, R | Local<Self>>
        : Effect.Effect<T, never, Local<Self>>;
Referenced by 1 symbols