relay-runtime
Version:
A core runtime for building GraphQL-driven applications.
56 lines (49 loc) • 1.32 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 {
FragmentMap,
FragmentSpecResolver,
Props,
RelayContext,
} from './RelayStoreTypes';
const RelayModernFragmentSpecResolver = require('./RelayModernFragmentSpecResolver');
const warning = require('warning');
function createFragmentSpecResolver(
context: RelayContext,
containerName: string,
fragments: FragmentMap,
props: Props,
rootIsQueryRenderer: boolean,
callback?: () => void,
): FragmentSpecResolver {
if (__DEV__) {
const fragmentNames = Object.keys(fragments);
fragmentNames.forEach(fragmentName => {
const propValue = props[fragmentName];
warning(
propValue !== undefined,
'createFragmentSpecResolver: Expected prop `%s` to be supplied to `%s`, but ' +
'got `undefined`. Pass an explicit `null` if this is intentional.',
fragmentName,
containerName,
);
});
}
return new RelayModernFragmentSpecResolver(
context,
fragments,
props,
callback,
rootIsQueryRenderer,
);
}
module.exports = createFragmentSpecResolver;