UNPKG

@graphql-mesh/cli

Version:
24 lines (23 loc) 982 B
import { print } from 'graphql'; import { buildOperationNodeForField, getRootTypeMap, parseGraphQLSDL } from '@graphql-tools/utils'; export function generateOperations(schema, options) { const sources = []; const rootTypeMap = getRootTypeMap(schema); for (const [operationType, rootType] of rootTypeMap) { const fieldMap = rootType.getFields(); for (const fieldName in fieldMap) { const operationNode = buildOperationNodeForField({ schema, kind: operationType, field: fieldName, depthLimit: options.selectionSetDepth, }); const defaultName = `operation_${sources.length}`; const virtualFileName = operationNode.name?.value || defaultName; const rawSDL = print(operationNode); const source = parseGraphQLSDL(`${virtualFileName}.graphql`, rawSDL); sources.push(source); } } return sources; }