UNPKG

relay-runtime

Version:

A core runtime for building GraphQL-driven applications.

52 lines (45 loc) 1.74 kB
/** * 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. */ import { GraphQLResponse } from '../network/RelayNetworkTypes'; import {RelayObservable, Sink} from '../network/RelayObservable'; import { GetDataID } from './RelayResponseNormalizer'; import { OperationDescriptor, OperationLoader, OperationTracker, OptimisticResponseConfig, PublishQueue, ReactFlightPayloadDeserializer, SelectorStoreUpdater, Store, } from './RelayStoreTypes'; export type ActiveState = 'active' | 'inactive'; export interface ExecuteConfig { readonly getDataID: GetDataID; readonly treatMissingFieldsAsNull: boolean; readonly operation: OperationDescriptor; readonly operationExecutions: Map<string, ActiveState>; readonly operationLoader: OperationLoader | null | undefined; readonly operationTracker?: OperationTracker | null | undefined; readonly optimisticConfig: OptimisticResponseConfig | null | undefined; readonly publishQueue: PublishQueue; readonly reactFlightPayloadDeserializer?: ReactFlightPayloadDeserializer | null | undefined; readonly scheduler?: TaskScheduler | null | undefined; readonly sink: Sink<GraphQLResponse>; readonly source: RelayObservable<GraphQLResponse>; readonly store: Store; readonly updater?: SelectorStoreUpdater | null | undefined; readonly isClientPayload?: boolean | undefined; } export interface TaskScheduler { cancel: (id: string) => void; schedule: (fn: () => void) => string; } export interface Executor { cancel: () => void; } export function execute(config: ExecuteConfig): Executor;