diff --git a/types/relay-runtime/index.d.ts b/types/relay-runtime/index.d.ts index dbafde4fe1..27ae20706c 100644 --- a/types/relay-runtime/index.d.ts +++ b/types/relay-runtime/index.d.ts @@ -138,6 +138,24 @@ export type SubscribeFunction = ( observer: LegacyObserver ) => RelayObservable | Disposable; +// ~~~~~~~~~~~~~~~~~~~~~ +// RelayQueryResponseCache +// Version: Relay 1.3.0 +// File: https://github.com/facebook/relay/blob/master/packages/relay-runtime/network/RelayQueryResponseCache.js +// ~~~~~~~~~~~~~~~~~~~~~ + +/** + * A cache for storing query responses, featuring: + * - `get` with TTL + * - cache size limiting, with least-recently *updated* entries purged first + */ +export class QueryResponseCache { + constructor(options: {size: number; ttl: number}); + clear(): void; + get(queryID: string, variables: Variables): QueryPayload | null; + set(queryID: string, variables: Variables, payload: QueryPayload): void; +} + // ~~~~~~~~~~~~~~~~~~~~~ // RelayStoreTypes // Version: Relay 1.3.0 diff --git a/types/relay-runtime/relay-runtime-tests.tsx b/types/relay-runtime/relay-runtime-tests.tsx index 72f262cbfa..ff714ce4ee 100644 --- a/types/relay-runtime/relay-runtime-tests.tsx +++ b/types/relay-runtime/relay-runtime-tests.tsx @@ -7,6 +7,7 @@ import { ViewerHandler, RecordSourceInspector, commitLocalUpdate, + QueryResponseCache, ROOT_ID, } from "relay-runtime"; @@ -33,6 +34,9 @@ function fetchQuery(operation: any, variables: { [key: string]: string }, cacheC // Create a network layer from the fetch function const network = Network.create(fetchQuery); +// Create a cache for storing query responses +const cache = new QueryResponseCache({size: 250, ttl: 60000}); + // ~~~~~~~~~~~~~~~~~~~~~ // Environment // ~~~~~~~~~~~~~~~~~~~~~