relay-runtime
Version:
A core runtime for building GraphQL-driven applications.
60 lines (51 loc) • 1.94 kB
TypeScript
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* Represents any resource that must be explicitly disposed of. The most common
* use-case is as a return value for subscriptions, where calling `dispose()`
* would cancel the subscription.
*/
export interface Disposable {
dispose: DisposeFn;
}
export type DataID = string;
export interface Variables {
[name: string]: any;
}
export interface OperationType {
readonly variables: Variables;
readonly response: unknown;
readonly rawResponse?: unknown | undefined;
}
export type VariablesOf<TQuery extends OperationType> = TQuery['variables'];
export type DisposeFn = () => void;
/**
* Settings for how a query response may be cached.
*
* - `force`: causes a query to be issued unconditionally, irrespective of the
* state of any configured response cache.
* - `poll`: causes a query to live update by polling at the specified interval
* in milliseconds. (This value will be passed to setTimeout.)
* - `liveConfigId`: causes a query to live update by calling GraphQLLiveQuery,
* it represents a configuration of gateway when doing live query
* - `metadata`: user-supplied metadata.
* - `transactionId`: a user-supplied value, intended for use as a unique id for
* a given instance of executing an operation.
*/
export interface CacheConfig {
force?: boolean | null | undefined;
poll?: number | null | undefined;
liveConfigId?: string | null | undefined;
metadata?: { [key: string]: unknown } | undefined;
transactionId?: string | null | undefined;
}
/**
* Experimental
*/
export type FetchQueryFetchPolicy = 'store-or-network' | 'network-only';
export type FetchPolicy = FetchQueryFetchPolicy | 'store-and-network' | 'store-only';
export type RenderPolicy = 'full' | 'partial';