diff --git a/types/relay-runtime/index.d.ts b/types/relay-runtime/index.d.ts index 42cd633b57..dbafde4fe1 100644 --- a/types/relay-runtime/index.d.ts +++ b/types/relay-runtime/index.d.ts @@ -60,6 +60,11 @@ export interface OperationDefaults { response: Variables; } +// ~~~~~~~~~~~~~~~~~~~~~ +// Constants +// ~~~~~~~~~~~~~~~~~~~~~ +export const ROOT_ID: string; + // ~~~~~~~~~~~~~~~~~~~~~ // RelayQL // ~~~~~~~~~~~~~~~~~~~~~ @@ -189,7 +194,7 @@ export interface RecordProxy { export interface RecordSourceProxy { create(dataID: DataID, typeName: string): RecordProxy; delete(dataID: DataID): void; - get(dataID: DataID): Array | null; + get(dataID: DataID): RecordProxy | null; getRoot(): RecordProxy; } @@ -1010,7 +1015,7 @@ export type Observable = RelayObservable; // commitLocalUpdate // ~~~~~~~~~~~~~~~~~~~~~ // exposed through RelayModern, not Runtime directly -export type commitLocalUpdate = (environment: Environment, updater: StoreUpdater) => void; +export function commitLocalUpdate(environment: Environment, updater: StoreUpdater): void; // ~~~~~~~~~~~~~~~~~~~~~ // commitRelayModernMutation diff --git a/types/relay-runtime/relay-runtime-tests.tsx b/types/relay-runtime/relay-runtime-tests.tsx index 4cbbacf680..72f262cbfa 100644 --- a/types/relay-runtime/relay-runtime-tests.tsx +++ b/types/relay-runtime/relay-runtime-tests.tsx @@ -6,6 +6,8 @@ import { ConnectionHandler, ViewerHandler, RecordSourceInspector, + commitLocalUpdate, + ROOT_ID, } from "relay-runtime"; const source = new RecordSource(); @@ -60,3 +62,12 @@ function handlerProvider(handle: any) { // ~~~~~~~~~~~~~~~~~~~~~ const inspector = new RecordSourceInspector(source); + +// ~~~~~~~~~~~~~~~~~~~~~ +// commitLocalUpdate +// ~~~~~~~~~~~~~~~~~~~~~ + +commitLocalUpdate(environment, store => { + const root = store.get(ROOT_ID)!; + root.setValue("foo", "localKey"); +});