HostOf<F>: F extends ((...args: infer A) => infer R)
    ? R extends Promise<infer T>
        ? ((...args: A) => Vow<T extends Passable
            ? T
            : HostInterface<T>>)
        : ((...args: A) => HostInterface<R>)
    : F

The function the host must provide to match an interface the guest expects.

Specifically, Promise return values are converted to Vows.

Type Parameters

  • F extends CallableFunction