Hyperlinkv0.8.0-beta.28

Hyperlink

Source src/Hyperlink.ts:172415 lines
export type ServiceOf<S extends Spec, Self = unknown> = Simplify<{
  readonly [K in keyof S]: S[K] extends FromLocalMethod<infer M>
    ? InjectLocal<M, Self> // fromService local: interface-shaped, gains `Local`
    : S[K] extends LocalMethod<infer T>
    ? LocalEffect<T, never, Self>
    : S[K] extends { readonly _tag: "constant" }
      ? SuccessOf<AsMethod<S[K]>>
      : S[K] extends { readonly _tag: "ref" }
        ? Subscribable<SuccessOf<AsMethod<S[K]>>>
        : S[K] extends { readonly kind: MethodKind } // leaf (F-independent; reconstruct via AsMethod)
          ? ClientMethod<AsMethod<S[K]>, ClientOverrideOf<S[K]>> // client handle → override or derived
          : S[K] extends Spec
            ? ServiceOf<S[K], Self> // nested group → nested service
            : never;
}>;
Referenced by 6 symbols