Skip to content

Class: FateClient<Roots, Mutations, HydrationScope> ​

Defined in: fate/src/client.ts:448

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: fate/src/client.ts:612

Parameters ​

options ​

FateClientOptions<Roots, Mutations, HydrationScope>

Returns ​

FateClient<Roots, Mutations, HydrationScope>

Properties ​

actions ​

readonly actions: MutationTreeFromRecord<Mutations>

Defined in: fate/src/client.ts:608


mutations ​

readonly mutations: MutationTreeFromRecord<Mutations>

Defined in: fate/src/client.ts:609


persistence? ​

readonly optional persistence?: PersistenceSession

Defined in: fate/src/client.ts:607


roots ​

readonly roots: Roots

Defined in: fate/src/client.ts:610


store ​

readonly store: Store

Defined in: fate/src/client.ts:558

Methods ​

assertLiveConnectionSupport() ​

assertLiveConnectionSupport(): void

Defined in: fate/src/client.ts:1462

Returns ​

void


assertLiveViewSupport() ​

assertLiveViewSupport(): void

Defined in: fate/src/client.ts:1454

Returns ​

void


dehydrate() ​

dehydrate(): FateDehydratedState<HydrationScope>

Defined in: fate/src/client.ts:731

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: fate/src/client.ts:1126

Parameters ​

type ​

string

id ​

string | number

Returns ​

void


executeMutation() ​

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

Defined in: fate/src/client.ts:1062

Parameters ​

key ​

string

input ​

unknown

select ​

Set<string>

options? ​
args? ​

FateRecord

identity? ​

Readonly<{ id: string; replayOnly?: true; scope: string; }>

plan? ​

SelectionPlan

Returns ​

Promise<unknown>


gc() ​

gc(): void

Defined in: fate/src/client.ts:2751

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: fate/src/client.ts:3081

Parameters ​

request ​

Request

Returns ​

string


getRequestResult() ​

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

Defined in: fate/src/client.ts:3311

Type Parameters ​

R ​

R extends Request

Parameters ​

request ​

R

Returns ​

RequestResult<Roots, R>


getTypeConfig() ​

getTypeConfig(type): TypeConfig

Defined in: fate/src/client.ts:999

Parameters ​

type ​

string

Returns ​

TypeConfig


hydrate() ​

hydrate(state, options?): void

Defined in: fate/src/client.ts:759

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: fate/src/client.ts:2127

Type Parameters ​

V ​

V extends View<any, any>

Parameters ​

view ​

V

connection ​

ConnectionMetadata

args ​

Record<string, unknown>

options? ​
direction? ​

"backward" | "forward"

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>


observeRequest() ​

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

Defined in: fate/src/client.ts:2490

Observes complete request results without throwing or suspending on a cache miss.

Type Parameters ​

R ​

R extends Request

Parameters ​

request ​

R

options? ​

RequestStateOptions = {}

Returns ​

RequestObserver<RequestResult<Roots, R>>


prepareRequestForRender() ​

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

Defined in: fate/src/client.ts:2568

Type Parameters ​

R ​

R extends Request

Parameters ​

request ​

R

options ​

Readonly<{ mode?: RequestMode; persist?: Readonly<{ maxAge: number; }>; signal?: AbortSignal; timeout?: number; }> | 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: fate/src/client.ts:1357

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: fate/src/client.ts:1173

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: fate/src/client.ts:1160

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: fate/src/client.ts:2090

Parameters ​

entityId ​

string

promise ​

Promise<unknown>

Returns ​

void


releaseRequest() ​

releaseRequest(request, mode): void

Defined in: fate/src/client.ts:2678

Parameters ​

request ​

Request

mode ​

RequestMode

Returns ​

void


releaseRequestKey() ​

releaseRequestKey(requestKey, mode): void

Defined in: fate/src/client.ts:2686

Parameters ​

requestKey ​

string

mode ​

RequestMode

Returns ​

void


request() ​

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

Defined in: fate/src/client.ts:2546

Type Parameters ​

R ​

R extends Request

Parameters ​

request ​

CheckedRequest<Roots, R>

options? ​

Readonly<{ mode?: RequestMode; persist?: Readonly<{ maxAge: number; }>; signal?: AbortSignal; timeout?: number; }>

Returns ​

Promise<RequestResult<Roots, R>>


requestForRender() ​

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

Defined in: fate/src/client.ts:2561

Type Parameters ​

R ​

R extends Request

Parameters ​

request ​

R

options? ​

Readonly<{ mode?: RequestMode; persist?: Readonly<{ maxAge: number; }>; signal?: AbortSignal; timeout?: number; }>

Returns ​

Promise<RequestResult<Roots, R>>


resolveOptimisticEntity() ​

resolveOptimisticEntity(optimisticEntityId, resolvedEntityId): void

Defined in: fate/src/client.ts:2115

Parameters ​

optimisticEntityId ​

string

resolvedEntityId ​

string

Returns ​

void


retain() ​

retain(request): RetainHandle

Defined in: fate/src/client.ts:2725

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: fate/src/client.ts:2706

Parameters ​

requestKey ​

string

mode? ​

RequestMode

Returns ​

RetainHandle


rootListRef() ​

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

Defined in: fate/src/client.ts:1168

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: fate/src/client.ts:1559

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: fate/src/client.ts:1470

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: fate/src/client.ts:3044

Type Parameters ​

T ​

T

Parameters ​

request ​

() => Promise<T>

Returns ​

Promise<T>


write() ​

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

Defined in: fate/src/client.ts:1116

Parameters ​

type ​

string

data ​

FateRecord

select ​

ReadonlySet<string>

plan? ​

SelectionPlan

insert? ​

InsertPosition

Returns ​

string

Released under the MIT License