UNPKG

17.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/query/graphql-errors.js"],"names":["fs","require","levenshtein","locInGraphQlToLocInFile","handlers","name","node","kind","value","loc","formatFilePath","filePath","report","format","bold","blue","formatError","message","codeFrame","stripIndent","extractError","error","docRegex","matches","docName","codeBlock","exec","toString","index","lastIndex","trim","findLocation","extractedMessage","def","location","enter","regex","handler","match","slice","getCodeFrame","query","line","column","start","linesAbove","linesBelow","getCodeFrameFromRelayError","source","body","multipleRootQueriesError","otherDef","otherName","field","selectionSet","selections","otherField","unifiedName","_","camelCase","upperFirst","highlightCode","process","env","NODE_ENV","id","context","beforeCodeFrame","Number","MAX_SAFE_INTEGER","afterCodeFrame","graphqlError","definitionsByName","get","formattedMessage","reportedMessage","unknownFragmentError","fragmentNames","definition","closestFragment","map","f","fragment","score","filter","sort","a","b","text","readFileSync","encoding","fragmentName","templateLoc","end","duplicateFragmentError","leftDefinition","rightDefinition","leftFragment","rightFragment"],"mappings":"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","sourcesContent":["// @flow\n\nconst fs = require(`fs-extra`)\nimport { print, visit, getLocation } from \"graphql\"\nimport { codeFrameColumns } from \"@babel/code-frame\"\nconst levenshtein = require(`fast-levenshtein`)\nimport _ from \"lodash\"\nimport report from \"gatsby-cli/lib/reporter\"\nconst { locInGraphQlToLocInFile } = require(`./error-parser`)\n\ntype RelayGraphQLError = Error & { validationErrors?: Object }\n\n// These handle specific errors throw by RelayParser. If an error matches\n// you get a pointer to the location in the query that is broken, otherwise\n// we show the error and the query.\nconst handlers = [\n [\n /Unknown field `(.+)` on type `(.+)`/i,\n ([name], node) => {\n if (node.kind === `Field` && node.name.value === name) {\n return node.name.loc\n }\n return null\n },\n ],\n [\n /Unknown argument `(.+)`/i,\n ([name], node) => {\n if (node.kind === `Argument` && node.name.value === name) {\n return node.name.loc\n }\n return null\n },\n ],\n [\n /Unknown directive `@(.+)`/i,\n ([name], node) => {\n if (node.kind === `Directive` && node.name.value === name) {\n return node.name.loc\n }\n return null\n },\n ],\n]\n\nfunction formatFilePath(filePath: string) {\n return `${report.format.bold(`file:`)} ${report.format.blue(filePath)}`\n}\n\nfunction formatError(message: string, filePath: string, codeFrame: string) {\n return (\n report.stripIndent`\n ${message}\n\n ${formatFilePath(filePath)}\n ` + `\\n\\n${codeFrame}\\n`\n )\n}\n\nfunction extractError(error: Error): { message: string, docName: string } {\n const docRegex = /Error:.(RelayParser|GraphQLParser):(.*)Source: document.`(.*)`.file.*(GraphQL.request.*^\\s*$)/gms\n let matches\n let message = ``\n let docName = ``\n let codeBlock = ``\n while ((matches = docRegex.exec(error.toString())) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (matches.index === docRegex.lastIndex) docRegex.lastIndex++\n ;[, , message, docName, codeBlock] = matches\n }\n\n if (!message) {\n message = error.toString()\n }\n\n message = message.trim()\n\n return { message, codeBlock, docName }\n}\n\nfunction findLocation(extractedMessage, def) {\n let location = null\n visit(def, {\n enter(node) {\n if (location) return\n for (const [regex, handler] of handlers) {\n const match = extractedMessage.match(regex)\n if (!match) continue\n if ((location = handler(match.slice(1), node))) break\n }\n },\n })\n return location\n}\n\nexport function getCodeFrame(query: string, line?: number, column?: number) {\n return codeFrameColumns(\n query,\n {\n start: {\n line,\n column,\n },\n },\n {\n linesAbove: 10,\n linesBelow: 10,\n }\n )\n}\n\nfunction getCodeFrameFromRelayError(\n def: any,\n extractedMessage: string,\n error: Error\n) {\n const { start, source } = findLocation(extractedMessage, def) || {}\n const query = source ? source.body : print(def)\n\n // we can't reliably get a location without the location source, since\n // the printed query may differ from the original.\n const { line, column } = (source && getLocation(source, start)) || {}\n return getCodeFrame(query, line, column)\n}\n\nexport function multipleRootQueriesError(\n filePath: string,\n def: any,\n otherDef: any\n) {\n const name = def.name.value\n const otherName = otherDef.name.value\n const field = def.selectionSet.selections[0].name.value\n const otherField = otherDef.selectionSet.selections[0].name.value\n const unifiedName = `${_.camelCase(name)}And${_.upperFirst(\n _.camelCase(otherName)\n )}`\n\n // colors are problematic for tests as we can different\n // results depending on platform, so we don't\n // highlight code for tests\n const highlightCode = process.env.NODE_ENV !== `test`\n\n return {\n id: `85910`,\n filePath,\n context: {\n name,\n otherName,\n beforeCodeFrame: codeFrameColumns(\n report.stripIndent`\n query ${otherName} {\n ${field} {\n #...\n }\n }\n\n query ${name} {\n ${otherField} {\n #...\n }\n }\n `,\n {\n start: {\n column: 0,\n line: 0,\n },\n },\n {\n linesBelow: Number.MAX_SAFE_INTEGER,\n highlightCode,\n }\n ),\n afterCodeFrame: codeFrameColumns(\n report.stripIndent`\n query ${unifiedName} {\n ${field} {\n #...\n }\n ${otherField} {\n #...\n }\n }\n `,\n {\n start: {\n column: 0,\n line: 0,\n },\n },\n {\n linesBelow: Number.MAX_SAFE_INTEGER,\n highlightCode,\n }\n ),\n },\n }\n}\n\nexport function graphqlError(\n definitionsByName: Map<string, any>,\n error: Error | RelayGraphQLError\n) {\n let codeBlock\n const { message, docName } = extractError(error)\n const { def, filePath } = definitionsByName.get(docName) || {}\n\n if (filePath && docName) {\n codeBlock = getCodeFrameFromRelayError(def, message, error)\n const formattedMessage = formatError(message, filePath, codeBlock)\n return { formattedMessage, docName, message, codeBlock }\n }\n\n let reportedMessage = `There was an error while compiling your site's GraphQL queries.\n ${message || error.message}\n `\n\n if (error.message.match(/must be an instance of/)) {\n reportedMessage +=\n `This usually means that more than one instance of 'graphql' is installed ` +\n `in your node_modules. Remove all but the top level one or run \\`npm dedupe\\` to fix it.`\n }\n\n if (error.message.match(/Duplicate document/)) {\n reportedMessage += `${error.message.slice(21)}\\n`\n }\n\n return { formattedMessage: reportedMessage, docName, message, codeBlock }\n}\n\nexport function unknownFragmentError({\n fragmentNames,\n filePath,\n definition,\n node,\n}) {\n const name = node.name.value\n const closestFragment = fragmentNames\n .map(f => {\n return { fragment: f, score: levenshtein.get(name, f) }\n })\n .filter(f => f.score < 10)\n .sort((a, b) => a.score > b.score)[0]?.fragment\n\n let text\n try {\n text = fs.readFileSync(filePath, { encoding: `utf-8` })\n } catch {\n text = definition.text\n }\n\n return {\n id: `85908`,\n filePath,\n context: {\n fragmentName: name,\n closestFragment,\n codeFrame: codeFrameColumns(\n text,\n {\n start: locInGraphQlToLocInFile(\n definition.templateLoc,\n getLocation({ body: definition.text }, node.loc.start)\n ),\n end: locInGraphQlToLocInFile(\n definition.templateLoc,\n getLocation({ body: definition.text }, node.loc.end)\n ),\n },\n {\n linesAbove: 10,\n linesBelow: 10,\n }\n ),\n },\n }\n}\n\nexport function duplicateFragmentError({\n name,\n leftDefinition,\n rightDefinition,\n}) {\n return {\n id: `85919`,\n context: {\n fragmentName: name,\n leftFragment: {\n filePath: leftDefinition.filePath,\n codeFrame: codeFrameColumns(\n leftDefinition.text,\n {\n start: getLocation(\n { body: leftDefinition.text },\n leftDefinition.def.name.loc.start\n ),\n end: getLocation(\n { body: leftDefinition.text },\n leftDefinition.def.name.loc.end\n ),\n },\n {\n linesAbove: 10,\n linesBelow: 10,\n }\n ),\n },\n rightFragment: {\n filePath: rightDefinition.filePath,\n codeFrame: codeFrameColumns(\n rightDefinition.text,\n {\n start: getLocation(\n { body: rightDefinition.text },\n rightDefinition.def.name.loc.start\n ),\n end: getLocation(\n { body: rightDefinition.text },\n rightDefinition.def.name.loc.end\n ),\n },\n {\n linesAbove: 10,\n linesBelow: 10,\n }\n ),\n },\n },\n }\n}\n"],"file":"graphql-errors.js"}
\No newline at end of file