Skip to content

Class: FateClient<Roots, Mutations, HydrationScope>

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

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:461

Parameters

options

FateClientOptions<Roots, Mutations, HydrationScope>

Returns

FateClient<Roots, Mutations, HydrationScope>

Properties

actions

readonly actions: MutationTreeFromRecord<Mutations>

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


mutations

readonly mutations: MutationTreeFromRecord<Mutations>

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


roots

readonly roots: Roots

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


store

readonly store: Store

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

Methods

assertLiveConnectionSupport()

assertLiveConnectionSupport(): void

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

Returns

void


assertLiveViewSupport()

assertLiveViewSupport(): void

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

Returns

void


clearOptimisticUpdate()

clearOptimisticUpdate(token): void

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

Parameters

token

number | null

Returns

void


dehydrate()

dehydrate(): FateDehydratedState<HydrationScope>

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

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, snapshots?, listSnapshots?): void

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

Parameters

type

string

id

string | number

snapshots?

Map<string, Readonly<{ mask?: FieldMask; record?: FateRecord; }>>

listSnapshots?

Map<string, 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[]; }>>

Returns

void


executeMutation()

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

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

Parameters

key

string

input

unknown

select

Set<string>

options?
args?

FateRecord

plan?

SelectionPlan

Returns

Promise<unknown>


filterSelectionForPendingOptimistics()

filterSelectionForPendingOptimistics(entityId, select, options?): Set<string>

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

Parameters

entityId

string | null

select

Set<string>

options?
excludeToken?

number | null

Returns

Set<string>


gc()

gc(): void

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

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


getPendingOptimisticMask()

getPendingOptimisticMask(entityId, options?): FieldMask | null

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

Parameters

entityId

string | null

options?
excludeToken?

number | null

Returns

FieldMask | null


getRequestKey()

getRequestKey(request): string

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

Parameters

request

Request

Returns

string


getRequestResult()

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

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

Type Parameters

R

R extends Request

Parameters

request

R

Returns

RequestResult<Roots, R>


getTypeConfig()

getTypeConfig(type): TypeConfig

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

Parameters

type

string

Returns

TypeConfig


hydrate()

hydrate(state, options?): void

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

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:1836

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:2017

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:993

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:866

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:853

Type Parameters

T

T extends Entity

Parameters

type

T["__typename"]

id

string | number

view

View<T, Selection<T>>

Returns

ViewRef<T["__typename"]>


registerOptimisticUpdate()

registerOptimisticUpdate(entityId, select): number | null

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

Parameters

entityId

string | null

select

ReadonlySet<string>

Returns

number | null


registerPendingOptimisticMutation()

registerPendingOptimisticMutation(entityId, promise): void

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

Parameters

entityId

string

promise

Promise<unknown>

Returns

void


releaseRequest()

releaseRequest(request, mode): void

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

Parameters

request

Request

mode

RequestMode

Returns

void


releaseRequestKey()

releaseRequestKey(requestKey, mode): void

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

Parameters

requestKey

string

mode

RequestMode

Returns

void


request()

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

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

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:2010

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:1725

Parameters

optimisticEntityId

string

resolvedEntityId

string

Returns

void


restore()

restore(id, snapshot): void

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

Parameters

id

string

snapshot

Snapshot

Returns

void


restoreList()

restoreList(name, list?): void

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

Parameters

name

string

list?

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[]; }>

Returns

void


retain()

retain(request): RetainHandle

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

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:2090

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:861

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:1190

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:1106

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:2323

Type Parameters

T

T

Parameters

request

() => Promise<T>

Returns

Promise<T>


write()

write(type, data, select, snapshots?, plan?, pathPrefix?, blockedMask?, insert?, listSnapshots?): string

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

Parameters

type

string

data

FateRecord

select

ReadonlySet<string>

snapshots?

Map<string, Readonly<{ mask?: FieldMask; record?: FateRecord; }>>

plan?

SelectionPlan

pathPrefix?

string | null

blockedMask?

FieldMask | null

insert?

InsertPosition

listSnapshots?

Map<string, 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[]; }>>

Returns

string

Released under the MIT License