kkrpc
    Preparing search index...

    Type Alias RPCValidators<API>

    RPCValidators: {
        [K in keyof API]?: API[K] extends (...args: infer A) => infer R
            ? MethodValidators<A, R>
            : API[K] extends Record<string, unknown> ? RPCValidators<API[K]> : never
    }

    Recursively map an API type to its validator shape.

    Given an API like:

    type API = {
    add(a: number, b: number): Promise<number>
    math: { multiply(a: number, b: number): Promise<number> }
    }

    This produces:

    {
    add?: { input?: StandardSchemaV1<[number, number]>, output?: StandardSchemaV1<number> }
    math?: { multiply?: { input?: ..., output?: ... } }
    }
    • Functions → MethodValidators<Parameters, ReturnType>
    • Nested objects → recurse into RPCValidators<NestedAPI>
    • Primitive properties / constructors → excluded (never)

    Every key is optional at every level, so you only validate what you want.

    Type Parameters

    • API