Module: @ts-rest/core
Classes
Interfaces
Type Aliases
ApiFetcher
Ƭ ApiFetcher: (args
: ApiFetcherArgs
) => Promise
<{ body
: unknown
; status
: number
}>
Type declaration
▸ (args
): Promise
<{ body
: unknown
; status
: number
}>
Parameters
Name | Type |
---|---|
args | ApiFetcherArgs |
Returns
Promise
<{ body
: unknown
; status
: number
}>
Defined in
libs/ts-rest/core/src/lib/client.ts:126
ApiFetcherArgs
Ƭ ApiFetcherArgs: Object
Type declaration
Name | Type |
---|---|
body | FormData | string | null | undefined |
credentials? | RequestCredentials |
headers | Record <string , string > |
method | string |
path | string |
Defined in
libs/ts-rest/core/src/lib/client.ts:118
ApiRouteResponse
Ƭ ApiRouteResponse<T
>: { [K in keyof T]: Object }[keyof T
] | { body
: unknown
; status
: Exclude
<HTTPStatusCode
, keyof T
> }
Type parameters
Name |
---|
T |
Defined in
libs/ts-rest/core/src/lib/client.ts:82
ApiRouteServerResponse
Ƭ ApiRouteServerResponse<T
>: { [K in keyof T]: Object }[keyof T
] | { body
: unknown
; status
: Exclude
<HTTPStatusCode
, keyof T
> }
Type parameters
Name | Type |
---|---|
T | extends Record <number , unknown > |
Defined in
libs/ts-rest/core/src/lib/server.ts:6
AppRoute
Ƭ AppRoute: AppRouteQuery
| AppRouteMutation
A union of all possible endpoint types.
Defined in
libs/ts-rest/core/src/lib/dsl.ts:54
AppRouteFunction
Ƭ AppRouteFunction<TRoute
, TClientArgs
>: AreAllPropertiesOptional
<Without
<DataReturnArgs
<TRoute
, TClientArgs
>, never
>> extends true
? (args?
: Prettify
<Without
<DataReturnArgs
<TRoute
, TClientArgs
>, never
>>) => Promise
<Prettify
<ApiRouteResponse
<TRoute
["responses"
]>>> : (args
: Prettify
<Without
<DataReturnArgs
<TRoute
, TClientArgs
>, never
>>) => Promise
<Prettify
<ApiRouteResponse
<TRoute
["responses"
]>>>
Returned from a mutation or query call
Type parameters
Name | Type |
---|---|
TRoute | extends AppRoute |
TClientArgs | extends ClientArgs |
Defined in
libs/ts-rest/core/src/lib/client.ts:97
AppRouteMutation
Ƭ AppRouteMutation: Object
A mutation endpoint. In REST terms, one using POST, PUT, PATCH, or DELETE.
Type declaration
Name | Type |
---|---|
body | unknown |
contentType? | "application/json" | "multipart/form-data" |
deprecated? | boolean |
description? | string |
method | "POST" | "DELETE" | "PUT" | "PATCH" |
path | Path |
pathParams? | unknown |
query? | unknown |
responses | Record <number , unknown > |
summary? | string |
Defined in
libs/ts-rest/core/src/lib/dsl.ts:25
AppRouteQuery
Ƭ AppRouteQuery: Object
A query endpoint. In REST terms, one using GET.
Type declaration
Name | Type |
---|---|
deprecated? | boolean |
description? | string |
method | "GET" |
path | Path |
pathParams? | unknown |
query? | unknown |
responses | Record <number , unknown > |
summary? | string |
Defined in
libs/ts-rest/core/src/lib/dsl.ts:10
AppRouter
Ƭ AppRouter: Object
A router (or contract) in @ts-rest is a collection of more routers or individual routes
Index signature
▪ [key: string
]: AppRouter
| AppRoute
Defined in
libs/ts-rest/core/src/lib/dsl.ts:60
AreAllPropertiesOptional
Ƭ AreAllPropertiesOptional<T
>: T
extends Record
<string
, unknown
> ? Exclude
<keyof T
, OptionalKeys
<T
>> extends never
? true
: false
: false
Type parameters
Name |
---|
T |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:85
ExtractExtraParametersFromClientArgs
Ƭ ExtractExtraParametersFromClientArgs<TClientArgs
>: TClientArgs
["api"
] extends ApiFetcher
? Omit
<Parameters
<TClientArgs
["api"
]>[0
], keyof Parameters
<ApiFetcher
>[0
]> : {}
Extract any extra parameters from the client args
Type parameters
Name | Type |
---|---|
TClientArgs | extends ClientArgs |
Defined in
libs/ts-rest/core/src/lib/client.ts:51
GetFieldType
Ƭ GetFieldType<T
, P
>: P
extends `${infer Left}.${infer Right}` ? Left
extends keyof T
? FieldWithPossiblyUndefined
<T
[Left
], Right
> : Left
extends `${infer FieldKey}[${infer IndexKey}]` ? FieldKey
extends keyof T
? FieldWithPossiblyUndefined
<IndexedFieldWithPossiblyUndefined
<T
[FieldKey
], IndexKey
>, Right
> : undefined
: undefined
: P
extends keyof T
? T
[P
] : P
extends `${infer FieldKey}[${infer IndexKey}]` ? FieldKey
extends keyof T
? IndexedFieldWithPossiblyUndefined
<T
[FieldKey
], IndexKey
> : undefined
: undefined
Type parameters
Name |
---|
T |
P |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:21
HTTPStatusCode
Ƭ HTTPStatusCode: 100
| 101
| 102
| 200
| 201
| 202
| 203
| 204
| 205
| 206
| 207
| 300
| 301
| 302
| 303
| 304
| 305
| 307
| 308
| 400
| 401
| 402
| 403
| 404
| 405
| 406
| 407
| 408
| 409
| 410
| 411
| 412
| 413
| 414
| 415
| 416
| 417
| 418
| 419
| 420
| 421
| 422
| 423
| 424
| 428
| 429
| 431
| 451
| 500
| 501
| 502
| 503
| 504
| 505
| 507
| 511
All available HTTP Status codes
Defined in
libs/ts-rest/core/src/lib/status-codes.ts:14
InitClientReturn
Ƭ InitClientReturn<T
, TClientArgs
>: RecursiveProxyObj
<T
, TClientArgs
>
Type parameters
Name | Type |
---|---|
T | extends AppRouter |
TClientArgs | extends ClientArgs |
Defined in
libs/ts-rest/core/src/lib/client.ts:279
Merge
Ƭ Merge<T
, U
>: Omit
<T
, keyof U
> & U
Type parameters
Name |
---|
T |
U |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:57
Narrow
Ƭ Narrow<T
>: Try
<T
, [], NarrowNotZod
<T
>>
Type parameters
Name |
---|
T |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:72
OptionalIfAllOptional
Ƭ OptionalIfAllOptional<T
, Select
>: PartialBy
<T
, Select
& { [K in keyof T]: AreAllPropertiesOptional<T[K]> extends true ? K : never }[keyof T
]>
Type parameters
Name | Type |
---|---|
T | T |
Select | extends keyof T = keyof T |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:91
ParamsFromUrl
Ƭ ParamsFromUrl<T
>: RecursivelyExtractPathParams
<T
, {}> extends infer U ? keyof U
extends never
? undefined
: { [key in keyof U]: U[key] } : never
Extract path params from path function
{ id: string, commentId: string }
Params
T - The URL e.g. /posts/:id
Type parameters
Name | Type |
---|---|
T | extends string |
Defined in
libs/ts-rest/core/src/lib/paths.ts:31
PartialBy
Ƭ PartialBy<T
, K
>: Omit
<T
, K
> & Partial
<Pick
<T
, K
>>
Type parameters
Name | Type |
---|---|
T | T |
K | extends keyof T |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:74
PathParamsFromUrl
Ƭ PathParamsFromUrl<T
>: ParamsFromUrl
<T
["path"
]> extends infer U ? U
: never
Extract the path params from the path in the contract
Type parameters
Name | Type |
---|---|
T | extends AppRoute |
Defined in
libs/ts-rest/core/src/lib/client.ts:28
PathParamsWithCustomValidators
Ƭ PathParamsWithCustomValidators<T
>: T
["pathParams"
] extends undefined
? PathParamsFromUrl
<T
> : Merge
<PathParamsFromUrl
<T
>, ZodInferOrType
<T
["pathParams"
]>>
Merge PathParamsFromUrl<T>
with pathParams schema if it exists
Type parameters
Name | Type |
---|---|
T | extends AppRoute |
Defined in
libs/ts-rest/core/src/lib/client.ts:37
Prettify
Ƭ Prettify<T
>: { [K in keyof T]: T[K] } & {}
Type parameters
Name |
---|
T |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:102
SuccessfulHttpStatusCode
Ƭ SuccessfulHttpStatusCode: 200
| 201
| 202
| 203
| 204
| 205
| 206
| 207
Defined in
libs/ts-rest/core/src/lib/status-codes.ts:1
With
Ƭ With<T
, V
>: Pick
<T
, ExcludeKeysWithoutTypeOf
<T
, V
>>
Type parameters
Name |
---|
T |
V |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:51
Without
Ƭ Without<T
, V
>: Pick
<T
, ExcludeKeysWithTypeOf
<T
, V
>>
Type parameters
Name |
---|
T |
V |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:50
ZodInferOrType
Ƭ ZodInferOrType<T
>: T
extends z.ZodTypeAny
? z.infer
<T
> : T
Type parameters
Name |
---|
T |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:53
ZodInputOrType
Ƭ ZodInputOrType<T
>: T
extends z.ZodTypeAny
? z.input
<T
> : T
Type parameters
Name |
---|
T |
Defined in
libs/ts-rest/core/src/lib/type-utils.ts:55
Functions
checkZodSchema
▸ checkZodSchema(data
, schema
, «destructured»?
): { data
: unknown
; success
: true
} | { error
: ZodError
<any
> ; success
: false
}
Parameters
Name | Type |
---|---|
data | unknown |
schema | unknown |
«destructured» | Object |
› passThroughExtraKeys | undefined | boolean |
Returns
{ data
: unknown
; success
: true
} | { error
: ZodError
<any
> ; success
: false
}
Defined in
libs/ts-rest/core/src/lib/zod-utils.ts:7
convertQueryParamsToUrlString
▸ convertQueryParamsToUrlString(query
, json?
): string
Parameters
Name | Type | Default value | Description |
---|---|---|---|
query | unknown | undefined | Any JSON object |
json | boolean | false | Use JSON.stringify to encode the query values |
Returns
string
- The query url segment, using explode array syntax, and deep object syntax
Defined in
libs/ts-rest/core/src/lib/query.ts:7
encodeQueryParams
▸ encodeQueryParams(query
): string
Parameters
Name | Type |
---|---|
query | unknown |
Returns
string
Defined in
libs/ts-rest/core/src/lib/query.ts:41
encodeQueryParamsJson
▸ encodeQueryParamsJson(query
): string
Parameters
Name | Type |
---|---|
query | unknown |
Returns
string
Defined in
libs/ts-rest/core/src/lib/query.ts:14
fetchApi
▸ fetchApi(«destructured»
): Promise
<{ body
: unknown
; status
: number
}>
Parameters
Name | Type |
---|---|
«destructured» | Object |
› body | unknown |
› clientArgs | ClientArgs |
› extraInputArgs | Record <string , unknown > |
› headers | Record <string , undefined | string > |
› path | string |
› route | AppRoute |
Returns
Promise
<{ body
: unknown
; status
: number
}>
Defined in
libs/ts-rest/core/src/lib/client.ts:172
getRouteQuery
▸ getRouteQuery<TAppRoute
>(route
, clientArgs
): (inputArgs?
: DataReturnArgs
<any
, ClientArgs
>) => Promise
<{ body
: unknown
; status
: number
}>
Type parameters
Name | Type |
---|---|
TAppRoute | extends AppRoute |
Parameters
Name | Type |
---|---|
route | TAppRoute |
clientArgs | ClientArgs |
Returns
fn
▸ (inputArgs?
): Promise
<{ body
: unknown
; status
: number
}>
Parameters
Name | Type |
---|---|
inputArgs? | DataReturnArgs <any , ClientArgs > |
Returns
Promise
<{ body
: unknown
; status
: number
}>
Defined in
libs/ts-rest/core/src/lib/client.ts:253
initClient
▸ initClient<T
, TClientArgs
>(router
, args
): RecursiveProxyObj
<T
, TClientArgs
>
Type parameters
Name | Type |
---|---|
T | extends AppRouter |
TClientArgs | extends ClientArgs |
Parameters
Name | Type |
---|---|
router | T |
args | TClientArgs |
Returns
RecursiveProxyObj
<T
, TClientArgs
>
Defined in
libs/ts-rest/core/src/lib/client.ts:284
initContract
▸ initContract(): ContractInstance
Instantiate a ts-rest client, primarily to access router
, response
, and body
Returns
ContractInstance
Defined in
libs/ts-rest/core/src/lib/dsl.ts:113
initTsRest
▸ initTsRest(): ContractInstance
Deprecated
Please use initContract instead.
Returns
ContractInstance
Defined in
libs/ts-rest/core/src/lib/dsl.ts:106
insertParamsIntoPath
▸ insertParamsIntoPath<T
>(«destructured»
): string
Type parameters
Name | Type |
---|---|
T | extends string |
Parameters
Name | Type |
---|---|
«destructured» | Object |
› params | ParamsFromUrl <T > |
› path | T |
Returns
string
- The URL with the params e.g. /posts/123
Defined in
libs/ts-rest/core/src/lib/paths.ts:48
isAppRoute
▸ isAppRoute(obj
): obj is AppRoute
Differentiate between a route and a router
Parameters
Name | Type |
---|---|
obj | AppRouter | AppRoute |
Returns
obj is AppRoute
Defined in
libs/ts-rest/core/src/lib/dsl.ts:70
isAppRouteResponse
▸ isAppRouteResponse(value
): value is Object
Parameters
Name | Type |
---|---|
value | unknown |
Returns
value is Object
Defined in
libs/ts-rest/core/src/lib/server.ts:18
isZodObject
▸ isZodObject(body
): body is AnyZodObject
Parameters
Name | Type |
---|---|
body | unknown |
Returns
body is AnyZodObject
Defined in
libs/ts-rest/core/src/lib/zod-utils.ts:3
parseJsonQueryObject
▸ parseJsonQueryObject(query
): Object
Parameters
Name | Type | Description |
---|---|---|
query | Record <string , string > | A server-side query object where values have been encoded as JSON strings |
Returns
Object
- The same object with the JSON strings decoded. Objects that were encoded using toJSON such as Dates will remain as strings
Defined in
libs/ts-rest/core/src/lib/query.ts:102
tsRestFetchApi
▸ tsRestFetchApi(args
): Promise
<{ body
: unknown
; status
: number
}>
Default fetch api implementation:
Can be used as a reference for implementing your own fetcher, or used in the "api" field of ClientArgs to allow you to hook into the request to run custom logic
Parameters
Name | Type |
---|---|
args | ApiFetcherArgs |
Returns
Promise
<{ body
: unknown
; status
: number
}>
Defined in
libs/ts-rest/core/src/lib/client.ts:126
validateResponse
▸ validateResponse(«destructured»
): Object
Parameters
Name | Type |
---|---|
«destructured» | Object |
› response | Object |
› response.body? | unknown |
› response.status | number |
› responseType | unknown |
Returns
Object
Name | Type |
---|---|
body? | unknown |
status | number |
Defined in
libs/ts-rest/core/src/lib/server.ts:29
zodErrorResponse
▸ zodErrorResponse(error
): Pick
<ZodError
<any
>, "name"
| "issues"
>
Parameters
Name | Type |
---|---|
error | ZodError <any > |
Returns
Pick
<ZodError
<any
>, "name"
| "issues"
>
Defined in
libs/ts-rest/core/src/lib/zod-utils.ts:46