Hyperlinkv0.9.0-beta.0

Hyperlink

Source src/Hyperlink.ts:211717 lines
export type ServiceOf<S extends Spec, Self = unknown> = Simplify<{
  readonly [K in keyof S]: S[K] extends FromLocalMethod<infer M>
    ? InjectLocal<M, Self> // interface-Tag local: interface-shaped, gains `Local`
    : S[K] extends LocalMethod<infer T>
    ? LocalEffect<T, never, Self>
    : S[K] extends DefaultMethod<infer F>
      ? F // Tag-baked default — identical local and remote
      : S[K] extends { readonly _tag: "value" }
        ? 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