Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function generate(
text: string,
schema: GraphQLSchema,
transforms: RelayCompilerTransforms,
moduleMap: ?{[string]: mixed},
): {[key: string]: GeneratedNode} {
const relaySchema = transformASTSchema(schema, IRTransforms.schemaExtensions);
const {definitions, schema: extendedSchema} = parseGraphQLText(
relaySchema,
text,
);
const compilerContext = new GraphQLCompilerContext(
Schema.DEPRECATED__create(schema, extendedSchema),
).addAll(definitions);
const documentMap = {};
compileRelayArtifacts(compilerContext, transforms).forEach(
([_definition, node]) => {
const transformedNode =
moduleMap != null ? CodeMarker.transform(node, moduleMap) : node;
documentMap[
node.kind === 'Request' ? node.params.name : node.name
] = transformedNode;
},
);
return documentMap;
}
function parseGraphQLText(
schema: GraphQLSchema,
text: string,
): {
definitions: $ReadOnlyArray,
schema: GraphQLSchema,
} {
const ast = parse(text);
const extendedSchema = extendSchema(schema, ast, {assumeValid: true});
const definitions = convertASTDocuments(
Schema.DEPRECATED__create(schema, extendedSchema),
[ast],
Parser.transform.bind(Parser),
);
return {
definitions,
schema: extendedSchema,
};
}