Skip to content

Commit 40014b2

Browse files
committed
chore: fix type error
1 parent f18297f commit 40014b2

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

packages/rest/src/index.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { ValueOf } from 'type-fest'
22

3-
import { ApiRouteResponse, ServerConfig } from '@kivotos/core'
4-
import { ApiRouteHandlerPayload, ApiRouteSchema, ClientApiRouter } from '@kivotos/core'
3+
import { ApiRouter, ApiRouteResponse, ServerConfig } from '@kivotos/core'
4+
import { ApiRouteHandlerPayload, ApiRouteSchema } from '@kivotos/core'
55

66
import { withPathParams, withQueryParams } from './utils'
77

@@ -53,42 +53,44 @@ export function createRestClient<TServerConfig extends ServerConfig<any, any, an
5353
}
5454
}
5555

56-
type ExtractClientApiRouterPath<TApiRouter extends ClientApiRouter> = ValueOf<{
57-
[TKey in keyof TApiRouter]: TApiRouter[TKey] extends { path: infer TPath extends string }
56+
type ExtractClientApiRouterPath<TApiRouter extends ApiRouter<any>> = ValueOf<{
57+
[TKey in keyof TApiRouter]: TApiRouter[TKey]['schema'] extends {
58+
path: infer TPath extends string
59+
}
5860
? TPath
5961
: never
6062
}>
6163

62-
type RestResponse<TApiRouter extends ClientApiRouter, TPath extends string> = ValueOf<{
63-
[TKey in keyof TApiRouter]: TApiRouter[TKey] extends { path: TPath }
64-
? TApiRouter[TKey] extends infer TApiRouteSchema extends ApiRouteSchema
64+
type RestResponse<TApiRouter extends ApiRouter<any>, TPath extends string> = ValueOf<{
65+
[TKey in keyof TApiRouter]: TApiRouter[TKey]['schema'] extends { path: TPath }
66+
? TApiRouter[TKey]['schema'] extends infer TApiRouteSchema extends ApiRouteSchema
6567
? ApiRouteResponse<TApiRouteSchema['responses']>
6668
: never
6769
: never
6870
}>
6971

70-
type RestPayload<TApiRouter extends ClientApiRouter, TPath extends string> = ValueOf<{
71-
[TKey in keyof TApiRouter]: TApiRouter[TKey] extends { path: TPath }
72-
? TApiRouter[TKey] extends infer TApiRouteSchema extends ApiRouteSchema
72+
type RestPayload<TApiRouter extends ApiRouter<any>, TPath extends string> = ValueOf<{
73+
[TKey in keyof TApiRouter]: TApiRouter[TKey]['schema'] extends { path: TPath }
74+
? TApiRouter[TKey]['schema'] extends infer TApiRouteSchema extends ApiRouteSchema
7375
? ApiRouteHandlerPayload<TApiRouteSchema>
7476
: never
7577
: never
7678
}>
7779

78-
type RestMethod<TApiRouter extends ClientApiRouter> = <
80+
type RestMethod<TApiRouter extends ApiRouter<any>> = <
7981
TPath extends ExtractClientApiRouterPath<TApiRouter>,
8082
>(
8183
path: TPath,
8284
payload: RestPayload<TApiRouter, TPath>
8385
) => Promise<RestResponse<TApiRouter, TPath>>
8486

85-
type FilterByMethod<TApiRouter, TMethod extends string> = {
86-
[TKey in keyof TApiRouter as TApiRouter[TKey] extends { method: TMethod }
87+
type FilterByMethod<TApiRouter extends ApiRouter<any>, TMethod extends string> = {
88+
[TKey in keyof TApiRouter as TApiRouter[TKey]['schema'] extends { method: TMethod }
8789
? TKey
8890
: never]: TApiRouter[TKey]
8991
}
9092

91-
export interface RestClient<TApiRouter extends ClientApiRouter> {
93+
export interface RestClient<TApiRouter extends ApiRouter<any>> {
9294
GET: RestMethod<FilterByMethod<TApiRouter, 'GET'>>
9395
POST: RestMethod<FilterByMethod<TApiRouter, 'POST'>>
9496
PUT: RestMethod<FilterByMethod<TApiRouter, 'PUT'>>

0 commit comments

Comments
 (0)