relay-runtime
Version:
A core runtime for building GraphQL-driven applications.
47 lines (40 loc) • 1.29 kB
Flow
/**
* 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.
*
* @flow strict-local
* @format
* @oncall relay
*/
;
import type {Handler} from '../store/RelayStoreTypes';
const ConnectionHandler = require('./connection/ConnectionHandler');
const MutationHandlers = require('./connection/MutationHandlers');
const invariant = require('invariant');
export type HandlerProvider = (name: string) => ?Handler;
function RelayDefaultHandlerProvider(handle: string): Handler {
switch (handle) {
case 'connection':
return ConnectionHandler;
case 'deleteRecord':
return MutationHandlers.DeleteRecordHandler;
case 'deleteEdge':
return MutationHandlers.DeleteEdgeHandler;
case 'appendEdge':
return MutationHandlers.AppendEdgeHandler;
case 'prependEdge':
return MutationHandlers.PrependEdgeHandler;
case 'appendNode':
return MutationHandlers.AppendNodeHandler;
case 'prependNode':
return MutationHandlers.PrependNodeHandler;
}
invariant(
false,
'RelayDefaultHandlerProvider: No handler provided for `%s`.',
handle,
);
}
module.exports = RelayDefaultHandlerProvider;