Skip to main content

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
NameType
argsApiFetcherArgs
Returns

Promise<{ body: unknown ; status: number }>

Defined in

libs/ts-rest/core/src/lib/client.ts:126


ApiFetcherArgs

Ƭ ApiFetcherArgs: Object

Type declaration

NameType
bodyFormData | string | null | undefined
credentials?RequestCredentials
headersRecord<string, string>
methodstring
pathstring

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

NameType
Textends 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

NameType
TRouteextends AppRoute
TClientArgsextends 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

NameType
bodyunknown
contentType?"application/json" | "multipart/form-data"
deprecated?boolean
description?string
method"POST" | "DELETE" | "PUT" | "PATCH"
pathPath
pathParams?unknown
query?unknown
responsesRecord<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

NameType
deprecated?boolean
description?string
method"GET"
pathPath
pathParams?unknown
query?unknown
responsesRecord<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

NameType
TClientArgsextends 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

NameType
Textends AppRouter
TClientArgsextends 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

NameType
TT
Selectextends 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

NameType
Textends 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

NameType
TT
Kextends 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

NameType
Textends 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

NameType
Textends 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

NameType
dataunknown
schemaunknown
«destructured»Object
› passThroughExtraKeysundefined | 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

NameTypeDefault valueDescription
queryunknownundefinedAny JSON object
jsonbooleanfalseUse 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

NameType
queryunknown

Returns

string

Defined in

libs/ts-rest/core/src/lib/query.ts:41


encodeQueryParamsJson

encodeQueryParamsJson(query): string

Parameters

NameType
queryunknown

Returns

string

Defined in

libs/ts-rest/core/src/lib/query.ts:14


fetchApi

fetchApi(«destructured»): Promise<{ body: unknown ; status: number }>

Parameters

NameType
«destructured»Object
› bodyunknown
› clientArgsClientArgs
› extraInputArgsRecord<string, unknown>
› headersRecord<string, undefined | string>
› pathstring
› routeAppRoute

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

NameType
TAppRouteextends AppRoute

Parameters

NameType
routeTAppRoute
clientArgsClientArgs

Returns

fn

▸ (inputArgs?): Promise<{ body: unknown ; status: number }>

Parameters
NameType
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

NameType
Textends AppRouter
TClientArgsextends ClientArgs

Parameters

NameType
routerT
argsTClientArgs

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

NameType
Textends string

Parameters

NameType
«destructured»Object
› paramsParamsFromUrl<T>
› pathT

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

NameType
objAppRouter | AppRoute

Returns

obj is AppRoute

Defined in

libs/ts-rest/core/src/lib/dsl.ts:70


isAppRouteResponse

isAppRouteResponse(value): value is Object

Parameters

NameType
valueunknown

Returns

value is Object

Defined in

libs/ts-rest/core/src/lib/server.ts:18


isZodObject

isZodObject(body): body is AnyZodObject

Parameters

NameType
bodyunknown

Returns

body is AnyZodObject

Defined in

libs/ts-rest/core/src/lib/zod-utils.ts:3


parseJsonQueryObject

parseJsonQueryObject(query): Object

Parameters

NameTypeDescription
queryRecord<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

NameType
argsApiFetcherArgs

Returns

Promise<{ body: unknown ; status: number }>

Defined in

libs/ts-rest/core/src/lib/client.ts:126


validateResponse

validateResponse(«destructured»): Object

Parameters

NameType
«destructured»Object
› responseObject
› response.body?unknown
› response.statusnumber
› responseTypeunknown

Returns

Object

NameType
body?unknown
statusnumber

Defined in

libs/ts-rest/core/src/lib/server.ts:29


zodErrorResponse

zodErrorResponse(error): Pick<ZodError<any>, "name" | "issues">

Parameters

NameType
errorZodError<any>

Returns

Pick<ZodError<any>, "name" | "issues">

Defined in

libs/ts-rest/core/src/lib/zod-utils.ts:46