Skip to content

Class: FateClient<Roots, Mutations, HydrationScope>

Defined in: packages/fate/src/client.ts:412

Core client that normalizes records, manages the view cache, and coordinates data fetching.

Type Parameters

Roots

Roots extends FateRoots

Mutations

Mutations extends FateMutations

HydrationScope

HydrationScope extends string = string

Constructors

Constructor

new FateClient<Roots, Mutations, HydrationScope>(options): FateClient<Roots, Mutations, HydrationScope>

Defined in: packages/fate/src/client.ts:462

Parameters

options

FateClientOptions<Roots, Mutations, HydrationScope>

Returns

FateClient<Roots, Mutations, HydrationScope>

Properties

actions

readonly actions: MutationTreeFromRecord<Mutations>

Defined in: packages/fate/src/client.ts:458


mutations

readonly mutations: MutationTreeFromRecord<Mutations>

Defined in: packages/fate/src/client.ts:459


roots

readonly roots: Roots

Defined in: packages/fate/src/client.ts:460


store

readonly store: Store

Defined in: packages/fate/src/client.ts:443

Methods

assertLiveConnectionSupport()

assertLiveConnectionSupport(): void

Defined in: packages/fate/src/client.ts:1060

Returns

void


assertLiveViewSupport()

assertLiveViewSupport(): void

Defined in: packages/fate/src/client.ts:1052

Returns

void


dehydrate()

dehydrate(): FateDehydratedState<HydrationScope>

Defined in: packages/fate/src/client.ts:554

Exports the durable normalized cache as an opaque JSON-safe value for SSR transfer or persistence. Runtime requests, subscriptions, retainers, and optimistic state are intentionally excluded.

Returns

FateDehydratedState<HydrationScope>


deleteRecord()

deleteRecord(type, id): void

Defined in: packages/fate/src/client.ts:781

Parameters

type

string

id

string | number

Returns

void


executeMutation()

executeMutation(key, input, select, options?): Promise<unknown>

Defined in: packages/fate/src/client.ts:737

Parameters

key

string

input

unknown

select

Set<string>

options?
args?

FateRecord

plan?

SelectionPlan

Returns

Promise<unknown>


gc()

gc(): void

Defined in: packages/fate/src/client.ts:1965

Removes records and lists that are not reachable from retained requests or the release buffer.

Garbage collection is scheduled automatically when retained requests are released. Calling this method manually is mainly useful in tests and custom memory-management flows.

Returns

void


getRequestKey()

getRequestKey(request): string

Defined in: packages/fate/src/client.ts:2192

Parameters

request

Request

Returns

string


getRequestResult()

getRequestResult<R>(request): RequestResult<Roots, R>

Defined in: packages/fate/src/client.ts:2332

Type Parameters

R

R extends Request

Parameters

request

R

Returns

RequestResult<Roots, R>


getTypeConfig()

getTypeConfig(type): TypeConfig

Defined in: packages/fate/src/client.ts:721

Parameters

type

string

Returns

TypeConfig


hydrate()

hydrate(state, options?): void

Defined in: packages/fate/src/client.ts:581

Restores a durable normalized cache snapshot without restoring runtime request handles, retainers, subscriptions, or optimistic update state. Hydrate before rendering SSR content. Replaying the same snapshot is safe.

Parameters

state

FateDehydratedState<HydrationScope>

options?

HydrateOptions = {}

Returns

void


loadConnection()

loadConnection<V>(view, connection, args, options?): Promise<Readonly<{ backwardPageLimit?: number; cursors?: readonly (string | undefined)[]; forwardPageLimit?: number; ids: readonly string[]; liveAfterIds?: readonly string[]; liveBeforeIds?: readonly string[]; pagination?: Pagination; pendingAfterIds?: readonly string[]; pendingBeforeIds?: readonly string[]; }> | undefined>

Defined in: packages/fate/src/client.ts:1681

Type Parameters

V

V extends View<any, any>

Parameters

view

V

connection

ConnectionMetadata

args

Record<string, unknown>

options?
direction?

"forward" | "backward"

Returns

Promise<Readonly<{ backwardPageLimit?: number; cursors?: readonly (string | undefined)[]; forwardPageLimit?: number; ids: readonly string[]; liveAfterIds?: readonly string[]; liveBeforeIds?: readonly string[]; pagination?: Pagination; pendingAfterIds?: readonly string[]; pendingBeforeIds?: readonly string[]; }> | undefined>


prepareRequestForRender()

prepareRequestForRender<R>(request, options): Readonly<{ promise: Promise<RequestResult<Roots, R>>; requestKey: string; }>

Defined in: packages/fate/src/client.ts:1847

Type Parameters

R

R extends Request

Parameters

request

R

options

Readonly<{ mode?: RequestMode; }> | undefined

Returns

Readonly<{ promise: Promise<RequestResult<Roots, R>>; requestKey: string; }>


readDeferred()

readDeferred<T>(deferred): PromiseLike<Readonly<{ coverage: readonly readonly [string, ReadonlySet<string>][]; data: T; }>>

Defined in: packages/fate/src/client.ts:955

Type Parameters

T

T

Parameters

deferred

Deferred<T>

Returns

PromiseLike<Readonly<{ coverage: readonly readonly [string, ReadonlySet<string>][]; data: T; }>>


readView()

readView<T, S, V>(view, ref): FateThenable<Readonly<{ coverage: readonly readonly [string, ReadonlySet<string>][]; data: ViewData<T, S>; }>>

Defined in: packages/fate/src/client.ts:828

Type Parameters

T

T extends Entity

S

S extends Selection<T>

V

V extends View<T, S>

Parameters

view

V

ref

ViewRef<T["__typename"]>

Returns

FateThenable<Readonly<{ coverage: readonly readonly [string, ReadonlySet<string>][]; data: ViewData<T, S>; }>>


ref()

ref<T>(type, id, view): ViewRef<T["__typename"]>

Defined in: packages/fate/src/client.ts:815

Type Parameters

T

T extends Entity

Parameters

type

T["__typename"]

id

string | number

view

View<T, Selection<T>>

Returns

ViewRef<T["__typename"]>


registerPendingOptimisticMutation()

registerPendingOptimisticMutation(entityId, promise): void

Defined in: packages/fate/src/client.ts:1644

Parameters

entityId

string

promise

Promise<unknown>

Returns

void


releaseRequest()

releaseRequest(request, mode): void

Defined in: packages/fate/src/client.ts:1904

Parameters

request

Request

mode

RequestMode

Returns

void


releaseRequestKey()

releaseRequestKey(requestKey, mode): void

Defined in: packages/fate/src/client.ts:1908

Parameters

requestKey

string

mode

RequestMode

Returns

void


request()

request<R>(request, options?): Promise<RequestResult<Roots, R>>

Defined in: packages/fate/src/client.ts:1830

Type Parameters

R

R extends Request

Parameters

request

R

options?

Readonly<{ mode?: RequestMode; }>

Returns

Promise<RequestResult<Roots, R>>


requestForRender()

requestForRender<R>(request, options?): Promise<RequestResult<Roots, R>>

Defined in: packages/fate/src/client.ts:1840

Type Parameters

R

R extends Request

Parameters

request

R

options?

Readonly<{ mode?: RequestMode; }>

Returns

Promise<RequestResult<Roots, R>>


resolveOptimisticEntity()

resolveOptimisticEntity(optimisticEntityId, resolvedEntityId): void

Defined in: packages/fate/src/client.ts:1669

Parameters

optimisticEntityId

string

resolvedEntityId

string

Returns

void


retain()

retain(request): RetainHandle

Defined in: packages/fate/src/client.ts:1939

Keeps the records and lists reachable from a request alive until the returned handle is disposed.

useRequest calls this automatically while the component is mounted. Use it directly for non-React request lifetimes, tests, or preloaded data that must survive manual garbage collection.

Parameters

request

Request

Returns

RetainHandle


retainRequestKey()

retainRequestKey(requestKey, mode?): RetainHandle

Defined in: packages/fate/src/client.ts:1920

Parameters

requestKey

string

mode?

RequestMode

Returns

RetainHandle


rootListRef()

rootListRef(entityId, rootView): Readonly<{ __typename: string; [ViewsTag]: Set<string>; id: string | number; }>

Defined in: packages/fate/src/client.ts:823

Parameters

entityId

string

rootView

View<any, any>

Returns

Readonly<{ __typename: string; [ViewsTag]: Set<string>; id: string | number; }>


subscribeLiveListView()

subscribeLiveListView<V>(view, connection): () => void

Defined in: packages/fate/src/client.ts:1141

Type Parameters

V

V extends View<any, any>

Parameters

view

V

connection

ConnectionMetadata

Returns

() => void


subscribeLiveView()

subscribeLiveView<T, S, V>(view, ref): () => void

Defined in: packages/fate/src/client.ts:1068

Type Parameters

T

T extends Entity

S

S extends Selection<T>

V

V extends View<T, S>

Parameters

view

V

ref

ViewRef<T["__typename"]>

Returns

() => void


trackPendingRequest()

trackPendingRequest<T>(request): Promise<T>

Defined in: packages/fate/src/client.ts:2149

Type Parameters

T

T

Parameters

request

() => Promise<T>

Returns

Promise<T>


write()

write(type, data, select, plan?, insert?): string

Defined in: packages/fate/src/client.ts:771

Parameters

type

string

data

FateRecord

select

ReadonlySet<string>

plan?

SelectionPlan

insert?

InsertPosition

Returns

string

Released under the MIT License