1- import type { Client , ContractRouter , ContractRouterClient } from '@orpc/contract'
1+ import type { AnyContractRouter , Client , ContractRouterClient } from '@orpc/contract'
22import type { AnyRouter , RouterClient } from '@orpc/server'
33import type { ClientLink } from './types'
44
@@ -9,13 +9,13 @@ export interface createORPCClientOptions {
99 path ?: string [ ]
1010}
1111
12- export function createORPCClient < TRouter extends AnyRouter | ContractRouter < any > , TClientContext = unknown > (
12+ export function createORPCClient < TRouter extends AnyRouter | AnyContractRouter , TClientContext = unknown > (
1313 link : ClientLink < TClientContext > ,
1414 options ?: createORPCClientOptions ,
15- ) : TRouter extends ContractRouter < any >
16- ? ContractRouterClient < TRouter , TClientContext >
17- : TRouter extends AnyRouter // put this in lower priority than ContractRouter, will make createORPCClient can work without @orpc/server
18- ? RouterClient < TRouter , TClientContext >
15+ ) : TRouter extends AnyRouter // TODO: move this bellow `TRouter extends AnyContractRouter` can help me remove @orpc/server in dependencies
16+ ? RouterClient < TRouter , TClientContext >
17+ : TRouter extends AnyContractRouter
18+ ? ContractRouterClient < TRouter , TClientContext >
1919 : never {
2020 const path = options ?. path ?? [ ]
2121
0 commit comments