UNPKG

31.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/query/query-compiler.js"],"names":["_","require","path","normalize","glob","validate","print","visit","visitWithTypeInfo","TypeInfo","isAbstractType","isObjectType","isInterfaceType","Kind","FragmentsOnCompositeTypesRule","KnownTypeNamesRule","LoneAnonymousOperationRule","PossibleFragmentSpreadsRule","ScalarLeafsRule","ValuesOfCorrectTypeRule","VariablesAreInputTypesRule","VariablesInAllowedPositionRule","getGatsbyDependents","store","default","FileParser","graphqlError","multipleRootQueriesError","duplicateFragmentError","unknownFragmentError","report","errorParser","locInGraphQlToLocInFile","websocketManager","overlayErrorID","compile","parentSpan","program","schema","themes","flattenedPlugins","getState","activity","activityTimer","id","start","errors","addError","push","bind","parsedQueries","parseQueries","base","directory","additional","resolveThemes","map","plugin","themeDir","pluginFilepath","queries","processQueries","length","structuredErrors","panicOnBuild","process","env","gatsby_executing_command","emitError","end","reduce","merged","theme","filesRegex","pathRegex","modulesThatUseGatsby","files","join","module","folderPath","sync","nodir","filter","d","match","concat","Array","from","components","keys","c","uniq","parser","parseFiles","definitionsByName","operations","extractOperations","processDefinitions","preValidationRules","Map","filePath","text","templateLoc","hash","doc","isHook","isStaticQuery","error","location","locations","message","dispatch","actions","queryExtractionGraphQLError","componentPath","definitions","forEach","def","name","value","printedAst","kind","OPERATION_DEFINITION","FRAGMENT_DEFINITION","has","otherDef","get","leftDefinition","rightDefinition","delete","set","isFragment","processedQueries","fragmentsUsedByFragment","fragmentNames","entries","operation","originalDefinition","otherQuery","usedFragments","missingFragments","determineUsedFragmentsForDefinition","definition","node","document","DOCUMENT","values","formattedMessage","addExtraFields","query","originalText","kebabCase","relative","NODE_ENV","useContext","visitedFragmentDefinitions","Set","cachedUsedFragments","FRAGMENT_SPREAD","fragmentDefinition","add","usedFragmentsForFragment","missingFragmentsForFragment","fragmentName","typeInfo","contextStack","transformer","enter","SELECTION_SET","hasTypename","hasId","FIELD","context","leave","pop","parentType","getParentType","extraFields","NAME","hasIdField","selections","undefined","type","idField","getFields","fieldType","String"],"mappings":"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","sourcesContent":["// @flow\n\n/** Query compiler extracts queries and fragments from all files, validates them\n * and then collocates them with fragments they require. This way fragments\n * have global scope and can be used in any other query or fragment.\n */\n\nconst _ = require(`lodash`)\n\nconst path = require(`path`)\nconst normalize = require(`normalize-path`)\nconst glob = require(`glob`)\n\nconst {\n validate,\n print,\n visit,\n visitWithTypeInfo,\n TypeInfo,\n isAbstractType,\n isObjectType,\n isInterfaceType,\n Kind,\n FragmentsOnCompositeTypesRule,\n KnownTypeNamesRule,\n LoneAnonymousOperationRule,\n PossibleFragmentSpreadsRule,\n ScalarLeafsRule,\n ValuesOfCorrectTypeRule,\n VariablesAreInputTypesRule,\n VariablesInAllowedPositionRule,\n} = require(`graphql`)\n\nconst getGatsbyDependents = require(`../utils/gatsby-dependents`)\nconst { store } = require(`../redux`)\nimport * as actions from \"../redux/actions/internal\"\nconst { default: FileParser } = require(`./file-parser`)\nconst {\n graphqlError,\n multipleRootQueriesError,\n duplicateFragmentError,\n unknownFragmentError,\n} = require(`./graphql-errors`)\nconst report = require(`gatsby-cli/lib/reporter`)\nconst {\n default: errorParser,\n locInGraphQlToLocInFile,\n} = require(`./error-parser`)\nconst websocketManager = require(`../utils/websocket-manager`)\n\nconst overlayErrorID = `graphql-compiler`\n\nexport default async function compile({ parentSpan } = {}): Promise<\n Map<string, RootQuery>\n> {\n // TODO: swap plugins to themes\n const { program, schema, themes, flattenedPlugins } = store.getState()\n\n const activity = report.activityTimer(`extract queries from components`, {\n parentSpan,\n id: `query-extraction`,\n })\n activity.start()\n\n const errors = []\n const addError = errors.push.bind(errors)\n\n const parsedQueries = await parseQueries({\n base: program.directory,\n additional: resolveThemes(\n themes.themes\n ? themes.themes\n : flattenedPlugins.map(plugin => {\n return {\n themeDir: plugin.pluginFilepath,\n }\n })\n ),\n addError,\n parentSpan,\n })\n\n const queries = processQueries({\n schema,\n parsedQueries,\n addError,\n parentSpan,\n })\n\n if (errors.length !== 0) {\n const structuredErrors = activity.panicOnBuild(errors)\n if (process.env.gatsby_executing_command === `develop`) {\n websocketManager.emitError(overlayErrorID, structuredErrors)\n }\n } else {\n if (process.env.gatsby_executing_command === `develop`) {\n // emitError with `null` as 2nd param to clear browser error overlay\n websocketManager.emitError(overlayErrorID, null)\n }\n }\n activity.end()\n\n return queries\n}\n\nexport const resolveThemes = (themes = []) =>\n themes.reduce((merged, theme) => {\n merged.push(theme.themeDir)\n return merged\n }, [])\n\nexport const parseQueries = async ({\n base,\n additional,\n addError,\n parentSpan,\n}) => {\n const filesRegex = `*.+(t|j)s?(x)`\n // Pattern that will be appended to searched directories.\n // It will match any .js, .jsx, .ts, and .tsx files, that are not\n // inside <searched_directory>/node_modules.\n const pathRegex = `/{${filesRegex},!(node_modules)/**/${filesRegex}}`\n\n const modulesThatUseGatsby = await getGatsbyDependents()\n\n let files = [\n path.join(base, `src`),\n path.join(base, `.cache`, `fragments`),\n ...additional.map(additional => path.join(additional, `src`)),\n ...modulesThatUseGatsby.map(module => module.path),\n ].reduce((merged, folderPath) => {\n merged.push(\n ...glob.sync(path.join(folderPath, pathRegex), {\n nodir: true,\n })\n )\n return merged\n }, [])\n\n files = files.filter(d => !d.match(/\\.d\\.ts$/))\n\n files = files.map(normalize)\n\n // We should be able to remove the following and preliminary tests do suggest\n // that they aren't needed anymore since we transpile node_modules now\n // However, there could be some cases (where a page is outside of src for example)\n // that warrant keeping this and removing later once we have more confidence (and tests)\n\n // Ensure all page components added as they're not necessarily in the\n // pages directory e.g. a plugin could add a page component. Plugins\n // *should* copy their components (if they add a query) to .cache so that\n // our babel plugin to remove the query on building is active.\n // Otherwise the component will throw an error in the browser of\n // \"graphql is not defined\".\n files = files.concat(\n Array.from(store.getState().components.keys(), c => normalize(c))\n )\n\n files = _.uniq(files)\n\n const parser = new FileParser({ parentSpan: parentSpan })\n\n return await parser.parseFiles(files, addError)\n}\n\nexport const processQueries = ({\n schema,\n parsedQueries,\n addError,\n parentSpan,\n}) => {\n const { definitionsByName, operations } = extractOperations(\n schema,\n parsedQueries,\n addError,\n parentSpan\n )\n\n return processDefinitions({\n schema,\n operations,\n definitionsByName,\n addError,\n parentSpan,\n })\n}\n\nconst preValidationRules = [\n LoneAnonymousOperationRule,\n KnownTypeNamesRule,\n FragmentsOnCompositeTypesRule,\n VariablesAreInputTypesRule,\n ScalarLeafsRule,\n PossibleFragmentSpreadsRule,\n ValuesOfCorrectTypeRule,\n VariablesInAllowedPositionRule,\n]\n\nconst extractOperations = (schema, parsedQueries, addError, parentSpan) => {\n const definitionsByName = new Map()\n const operations = []\n\n for (const {\n filePath,\n text,\n templateLoc,\n hash,\n doc,\n isHook,\n isStaticQuery,\n } of parsedQueries) {\n const errors = validate(schema, doc, preValidationRules)\n\n if (errors && errors.length) {\n addError(\n ...errors.map(error => {\n const location = {\n start: locInGraphQlToLocInFile(templateLoc, error.locations[0]),\n }\n return errorParser({ message: error.message, filePath, location })\n })\n )\n\n store.dispatch(\n actions.queryExtractionGraphQLError({\n componentPath: filePath,\n })\n )\n // Something is super wrong with this document, so we report it and skip\n continue\n }\n\n doc.definitions.forEach((def: any) => {\n const name = def.name.value\n let printedAst = null\n if (def.kind === Kind.OPERATION_DEFINITION) {\n operations.push(def)\n } else if (def.kind === Kind.FRAGMENT_DEFINITION) {\n // Check if we already registered a fragment with this name\n printedAst = print(def)\n if (definitionsByName.has(name)) {\n const otherDef = definitionsByName.get(name)\n // If it's not an accidental duplicate fragment, but is a different\n // one - we report an error\n if (printedAst !== otherDef.printedAst) {\n addError(\n duplicateFragmentError({\n name,\n leftDefinition: {\n def,\n filePath,\n text,\n templateLoc,\n },\n rightDefinition: otherDef,\n })\n )\n // We won't know which one to use, so it's better to fail both of\n // them.\n definitionsByName.delete(name)\n }\n return\n }\n }\n\n definitionsByName.set(name, {\n name,\n def,\n filePath,\n text: text,\n templateLoc,\n printedAst,\n isHook,\n isStaticQuery,\n isFragment: def.kind === Kind.FRAGMENT_DEFINITION,\n hash: hash,\n })\n })\n }\n\n return {\n definitionsByName,\n operations,\n }\n}\n\nconst processDefinitions = ({\n schema,\n operations,\n definitionsByName,\n addError,\n parentSpan,\n}) => {\n const processedQueries: Queries = new Map()\n\n const fragmentsUsedByFragment = new Map()\n\n const fragmentNames = Array.from(definitionsByName.entries())\n .filter(([_, def]) => def.isFragment)\n .map(([name, _]) => name)\n\n for (const operation of operations) {\n const name = operation.name.value\n const originalDefinition = definitionsByName.get(name)\n const filePath = definitionsByName.get(name).filePath\n if (processedQueries.has(filePath)) {\n const otherQuery = processedQueries.get(filePath)\n\n addError(\n multipleRootQueriesError(\n filePath,\n originalDefinition.def,\n otherQuery && definitionsByName.get(otherQuery.name).def\n )\n )\n\n store.dispatch(\n actions.queryExtractionGraphQLError({\n componentPath: filePath,\n })\n )\n continue\n }\n\n const {\n usedFragments,\n missingFragments,\n } = determineUsedFragmentsForDefinition(\n originalDefinition,\n definitionsByName,\n fragmentsUsedByFragment\n )\n\n if (missingFragments.length > 0) {\n for (const { filePath, definition, node } of missingFragments) {\n store.dispatch(\n actions.queryExtractionGraphQLError({\n componentPath: filePath,\n })\n )\n addError(\n unknownFragmentError({\n fragmentNames,\n filePath,\n definition,\n node,\n })\n )\n }\n continue\n }\n\n let document = {\n kind: Kind.DOCUMENT,\n definitions: Array.from(usedFragments.values())\n .map(name => definitionsByName.get(name).def)\n .concat([operation]),\n }\n\n const errors = validate(schema, document)\n if (errors && errors.length) {\n for (const error of errors) {\n const { formattedMessage, message } = graphqlError(\n definitionsByName,\n error\n )\n\n const filePath = originalDefinition.filePath\n store.dispatch(\n actions.queryExtractionGraphQLError({\n componentPath: filePath,\n error: formattedMessage,\n })\n )\n const location = locInGraphQlToLocInFile(\n originalDefinition.templateLoc,\n error.locations[0]\n )\n addError(\n errorParser({\n location: {\n start: location,\n end: location,\n },\n message,\n filePath,\n })\n )\n }\n continue\n }\n\n document = addExtraFields(document, schema)\n\n const query = {\n name,\n text: print(document),\n originalText: originalDefinition.text,\n path: filePath,\n isHook: originalDefinition.isHook,\n isStaticQuery: originalDefinition.isStaticQuery,\n hash: originalDefinition.hash,\n }\n\n if (query.isStaticQuery) {\n query.id =\n `sq--` +\n _.kebabCase(\n `${path.relative(store.getState().program.directory, filePath)}`\n )\n }\n\n if (\n query.isHook &&\n process.env.NODE_ENV === `production` &&\n typeof require(`react`).useContext !== `function`\n ) {\n report.panicOnBuild(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n processedQueries.set(filePath, query)\n }\n\n return processedQueries\n}\n\nconst determineUsedFragmentsForDefinition = (\n definition,\n definitionsByName,\n fragmentsUsedByFragment,\n visitedFragmentDefinitions = new Set()\n) => {\n const { def, name, isFragment, filePath } = definition\n const cachedUsedFragments = fragmentsUsedByFragment.get(name)\n if (cachedUsedFragments) {\n return { usedFragments: cachedUsedFragments, missingFragments: [] }\n } else {\n const usedFragments = new Set()\n const missingFragments = []\n visit(def, {\n [Kind.FRAGMENT_SPREAD]: node => {\n const name = node.name.value\n const fragmentDefinition = definitionsByName.get(name)\n if (visitedFragmentDefinitions.has(fragmentDefinition)) {\n return\n }\n visitedFragmentDefinitions.add(fragmentDefinition)\n if (fragmentDefinition) {\n usedFragments.add(name)\n const {\n usedFragments: usedFragmentsForFragment,\n missingFragments: missingFragmentsForFragment,\n } = determineUsedFragmentsForDefinition(\n fragmentDefinition,\n definitionsByName,\n fragmentsUsedByFragment,\n visitedFragmentDefinitions\n )\n usedFragmentsForFragment.forEach(fragmentName =>\n usedFragments.add(fragmentName)\n )\n missingFragments.push(...missingFragmentsForFragment)\n } else {\n missingFragments.push({\n filePath,\n definition,\n node,\n })\n }\n },\n })\n if (isFragment) {\n fragmentsUsedByFragment.set(name, usedFragments)\n }\n return { usedFragments, missingFragments }\n }\n}\n\n/**\n * Automatically add:\n * `__typename` field to abstract types (unions, interfaces)\n * `id` field to all object/interface types having an id\n * TODO: Remove this in v3.0 as it is a legacy from Relay compiler\n */\nconst addExtraFields = (document, schema) => {\n const typeInfo = new TypeInfo(schema)\n const contextStack = []\n\n const transformer = visitWithTypeInfo(typeInfo, {\n enter: {\n [Kind.SELECTION_SET]: node => {\n // Entering selection set:\n // selection sets can be nested, so keeping their metadata stacked\n contextStack.push({ hasTypename: false, hasId: false })\n },\n [Kind.FIELD]: node => {\n // Entering a field of the current selection-set:\n // mark which fields already exist in this selection set to avoid duplicates\n const context = contextStack[contextStack.length - 1]\n if (node.name.value === `__typename`) {\n context.hasTypename = true\n }\n if (node.name.value === `id`) {\n context.hasId = true\n }\n },\n },\n leave: {\n [Kind.SELECTION_SET]: node => {\n // Modify the selection-set AST on leave (add extra fields unless they already exist)\n const context = contextStack.pop()\n const parentType = typeInfo.getParentType()\n const extraFields = []\n\n // Adding __typename to unions and interfaces (if required)\n if (!context.hasTypename && isAbstractType(parentType)) {\n extraFields.push({\n kind: Kind.FIELD,\n name: { kind: Kind.NAME, value: `__typename` },\n })\n }\n if (\n !context.hasId &&\n (isObjectType(parentType) || isInterfaceType(parentType)) &&\n hasIdField(parentType)\n ) {\n extraFields.push({\n kind: Kind.FIELD,\n name: { kind: Kind.NAME, value: `id` },\n })\n }\n return extraFields.length > 0\n ? { ...node, selections: [...extraFields, ...node.selections] }\n : undefined\n },\n },\n })\n\n return visit(document, transformer)\n}\n\nconst hasIdField = type => {\n const idField = type.getFields()[`id`]\n const fieldType = idField ? String(idField.type) : ``\n return fieldType === `ID` || fieldType === `ID!`\n}\n"],"file":"query-compiler.js"}
\No newline at end of file