Hyperlinkv0.9.0-beta.0

Hyperlink

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

Inject the Local capability into a service member's requirement channel — how a Tag<Self, I>() 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.

modelsLocalTag
Source src/Hyperlink.ts:21659 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