UNPKG

29.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/query/file-parser.js"],"names":["fs","require","crypto","_","slugify","getGraphQLTag","StringInterpolationNotAllowedError","EmptyGraphQLTagError","GraphQLSyntaxError","report","apiRunnerNode","boundActionCreators","generateQueryName","def","hash","file","name","value","slugified","replacement","lower","camelCase","kind","isUseStaticQuery","path","node","callee","type","property","get","referencesImport","warnForUnknownQueryVariable","varName","usageFunction","warn","parseToAst","filePath","fileStr","parentSpan","addError","ast","transpiled","filename","contents","length","item","tmp","error","queryExtractionGraphQLError","componentPath","undefined","id","context","queryExtractionBabelError","warnForGlobalTag","findGraphQLTags","text","Promise","resolve","reject","then","documents","documentLocations","WeakMap","extractStaticQuery","taggedTemplateExpressPath","isHook","gqlAst","isGlobal","definitions","forEach","templateLoc","traverse","TemplateElement","templateElementPath","loc","docInFile","doc","isStaticQuery","set","start","push","JSXElement","openingElement","JSXAttribute","jsxPath","TaggedTemplateExpression","templatePath","Identifier","identifierPath","found","VariableDeclarator","varPath","init","CallExpression","hookPath","firstArg","isTaggedTemplateExpression","isIdentifier","innerPath","followVariableDeclarations","binding","scope","getBinding","ExportNamedDeclaration","state","ExportSpecifier","local","uniqueQueries","uniqBy","q","catch","cache","FileParser","constructor","parseFile","readFile","err","includes","createHash","update","digest","astDefinitions","queryExtractedBabelSuccess","structuredError","location","interpolationStart","end","interpolationEnd","codeFrame","highlightCode","process","env","FORCE_COLOR","originalError","locations","message","sourceMessage","parseFiles","files","all","map","docs"],"mappings":"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","sourcesContent":["// @flow\nconst fs = require(`fs-extra`)\nconst crypto = require(`crypto`)\nconst _ = require(`lodash`)\nconst slugify = require(`slugify`)\n\n// Traverse is a es6 module...\nimport traverse from \"@babel/traverse\"\nconst {\n getGraphQLTag,\n StringInterpolationNotAllowedError,\n EmptyGraphQLTagError,\n GraphQLSyntaxError,\n} = require(`babel-plugin-remove-graphql-queries`)\n\nconst report = require(`gatsby-cli/lib/reporter`)\n\nimport type { DocumentNode } from \"graphql\"\nimport { babelParseToAst } from \"../utils/babel-parse-to-ast\"\nimport { codeFrameColumns } from \"@babel/code-frame\"\n\nconst apiRunnerNode = require(`../utils/api-runner-node`)\nconst { boundActionCreators } = require(`../redux/actions`)\nimport { locInGraphQlToLocInFile } from \"./error-parser\"\n/**\n * Add autogenerated query name if it wasn't defined by user.\n */\nconst generateQueryName = ({ def, hash, file }) => {\n if (!def.name || !def.name.value) {\n const slugified = slugify(file, {\n replacement: ` `,\n lower: false,\n })\n def.name = {\n value: `${_.camelCase(slugified)}${hash}`,\n kind: `Name`,\n }\n }\n return def\n}\n\nfunction isUseStaticQuery(path) {\n return (\n (path.node.callee.type === `MemberExpression` &&\n path.node.callee.property.name === `useStaticQuery` &&\n path\n .get(`callee`)\n .get(`object`)\n .referencesImport(`gatsby`)) ||\n (path.node.callee.name === `useStaticQuery` &&\n path.get(`callee`).referencesImport(`gatsby`))\n )\n}\n\nconst warnForUnknownQueryVariable = (varName, file, usageFunction) =>\n report.warn(\n `\\nWe were unable to find the declaration of variable \"${varName}\", which you passed as the \"query\" prop into the ${usageFunction} declaration in \"${file}\".\n\nPerhaps the variable name has a typo?\n\nAlso note that we are currently unable to use queries defined in files other than the file where the ${usageFunction} is defined. If you're attempting to import the query, please move it into \"${file}\". If being able to import queries from another file is an important capability for you, we invite your help fixing it.\\n`\n )\n\nasync function parseToAst(filePath, fileStr, { parentSpan, addError } = {}) {\n let ast\n\n // Preprocess and attempt to parse source; return an AST if we can, log an\n // error if we can't.\n const transpiled = await apiRunnerNode(`preprocessSource`, {\n filename: filePath,\n contents: fileStr,\n parentSpan: parentSpan,\n })\n if (transpiled && transpiled.length) {\n for (const item of transpiled) {\n try {\n const tmp = babelParseToAst(item, filePath)\n ast = tmp\n break\n } catch (error) {\n boundActionCreators.queryExtractionGraphQLError({\n componentPath: filePath,\n })\n continue\n }\n }\n if (ast === undefined) {\n addError({\n id: `85912`,\n filePath,\n context: {\n filePath,\n },\n })\n boundActionCreators.queryExtractionGraphQLError({\n componentPath: filePath,\n })\n\n return null\n }\n } else {\n try {\n ast = babelParseToAst(fileStr, filePath)\n } catch (error) {\n boundActionCreators.queryExtractionBabelError({\n componentPath: filePath,\n error,\n })\n\n addError({\n id: `85911`,\n filePath,\n context: {\n filePath,\n },\n })\n\n return null\n }\n }\n\n return ast\n}\n\nconst warnForGlobalTag = file =>\n report.warn(\n `Using the global \\`graphql\\` tag is deprecated, and will not be supported in v3.\\n` +\n `Import it instead like: import { graphql } from 'gatsby' in file:\\n` +\n file\n )\n\ntype GraphQLDocumentInFile = {\n filePath: string,\n doc: DocumentNode,\n templateLoc: string,\n text: string,\n hash: string,\n isHook: boolean,\n isStaticQuery: boolean,\n}\n\nasync function findGraphQLTags(\n file,\n text,\n { parentSpan, addError } = {}\n): Promise<Array<GraphQLDocumentInFile>> {\n return new Promise((resolve, reject) => {\n parseToAst(file, text, { parentSpan, addError })\n .then(ast => {\n const documents = []\n if (!ast) {\n resolve(documents)\n return\n }\n\n /**\n * A map of graphql documents to unique locations.\n *\n * A graphql document's unique location is made of:\n *\n * - the location of the graphql template literal that contains the document, and\n * - the document's location within the graphql template literal\n *\n * This is used to prevent returning duplicated documents.\n */\n const documentLocations = new WeakMap()\n\n const extractStaticQuery = (\n taggedTemplateExpressPath,\n isHook = false\n ) => {\n const { ast: gqlAst, text, hash, isGlobal } = getGraphQLTag(\n taggedTemplateExpressPath\n )\n if (!gqlAst) return\n\n if (isGlobal) warnForGlobalTag(file)\n\n gqlAst.definitions.forEach(def => {\n generateQueryName({\n def,\n hash,\n file,\n })\n })\n\n let templateLoc\n\n taggedTemplateExpressPath.traverse({\n TemplateElement(templateElementPath) {\n templateLoc = templateElementPath.node.loc\n },\n })\n\n const docInFile = {\n filePath: file,\n doc: gqlAst,\n text: text,\n hash: hash,\n isStaticQuery: true,\n isHook,\n templateLoc,\n }\n\n documentLocations.set(\n docInFile,\n `${taggedTemplateExpressPath.node.start}-${gqlAst.loc.start}`\n )\n\n documents.push(docInFile)\n }\n\n // Look for queries in <StaticQuery /> elements.\n traverse(ast, {\n JSXElement(path) {\n if (path.node.openingElement.name.name !== `StaticQuery`) {\n return\n }\n\n // astexplorer.com link I (@kyleamathews) used when prototyping this algorithm\n // https://astexplorer.net/#/gist/ab5d71c0f08f287fbb840bf1dd8b85ff/2f188345d8e5a4152fe7c96f0d52dbcc6e9da466\n path.traverse({\n JSXAttribute(jsxPath) {\n if (jsxPath.node.name.name !== `query`) {\n return\n }\n jsxPath.traverse({\n // Assume the query is inline in the component and extract that.\n TaggedTemplateExpression(templatePath) {\n extractStaticQuery(templatePath)\n },\n // Also see if it's a variable that's passed in as a prop\n // and if it is, go find it.\n Identifier(identifierPath) {\n if (identifierPath.node.name !== `graphql`) {\n const varName = identifierPath.node.name\n let found = false\n traverse(ast, {\n VariableDeclarator(varPath) {\n if (\n varPath.node.id.name === varName &&\n varPath.node.init.type ===\n `TaggedTemplateExpression`\n ) {\n varPath.traverse({\n TaggedTemplateExpression(templatePath) {\n found = true\n extractStaticQuery(templatePath)\n },\n })\n }\n },\n })\n if (!found) {\n warnForUnknownQueryVariable(\n varName,\n file,\n `<StaticQuery>`\n )\n }\n }\n },\n })\n },\n })\n return\n },\n })\n\n // Look for queries in useStaticQuery hooks.\n traverse(ast, {\n CallExpression(hookPath) {\n if (!isUseStaticQuery(hookPath)) return\n\n const firstArg = hookPath.get(`arguments`)[0]\n\n // Assume the query is inline in the component and extract that.\n if (firstArg.isTaggedTemplateExpression()) {\n extractStaticQuery(firstArg, true)\n // Also see if it's a variable that's passed in as a prop\n // and if it is, go find it.\n } else if (firstArg.isIdentifier()) {\n if (\n firstArg.node.name !== `graphql` &&\n firstArg.node.name !== `useStaticQuery`\n ) {\n const varName = firstArg.node.name\n let found = false\n traverse(ast, {\n VariableDeclarator(varPath) {\n if (\n varPath.node.id.name === varName &&\n varPath.node.init.type === `TaggedTemplateExpression`\n ) {\n varPath.traverse({\n TaggedTemplateExpression(templatePath) {\n found = true\n extractStaticQuery(templatePath, true)\n },\n })\n }\n },\n })\n if (!found) {\n warnForUnknownQueryVariable(varName, file, `useStaticQuery`)\n }\n }\n }\n },\n })\n\n function TaggedTemplateExpression(innerPath) {\n const { ast: gqlAst, isGlobal, hash, text } = getGraphQLTag(innerPath)\n if (!gqlAst) return\n\n if (isGlobal) warnForGlobalTag(file)\n\n gqlAst.definitions.forEach(def => {\n generateQueryName({\n def,\n hash,\n file,\n })\n })\n\n let templateLoc\n innerPath.traverse({\n TemplateElement(templateElementPath) {\n templateLoc = templateElementPath.node.loc\n },\n })\n\n const docInFile = {\n filePath: file,\n doc: gqlAst,\n text: text,\n hash: hash,\n isStaticQuery: false,\n isHook: false,\n templateLoc,\n }\n\n documentLocations.set(\n docInFile,\n `${innerPath.node.start}-${gqlAst.loc.start}`\n )\n\n documents.push(docInFile)\n }\n\n function followVariableDeclarations(binding) {\n const node = binding.path?.node\n if (\n node &&\n node.type === `VariableDeclarator` &&\n node.id.type === `Identifier` &&\n node.init.type === `Identifier`\n ) {\n return followVariableDeclarations(\n binding.path.scope.getBinding(node.init.name)\n )\n }\n return binding\n }\n\n // Look for exported page queries\n traverse(ast, {\n ExportNamedDeclaration(path, state) {\n path.traverse({\n TaggedTemplateExpression,\n ExportSpecifier(path) {\n const binding = followVariableDeclarations(\n path.scope.getBinding(path.node.local.name)\n )\n binding.path.traverse({ TaggedTemplateExpression })\n },\n })\n },\n })\n\n // Remove duplicate queries\n const uniqueQueries = _.uniqBy(documents, q => documentLocations.get(q))\n\n resolve(uniqueQueries)\n })\n .catch(reject)\n })\n}\n\nconst cache = {}\n\nexport default class FileParser {\n constructor({ parentSpan } = {}) {\n this.parentSpan = parentSpan\n }\n\n async parseFile(file: string, addError): Promise<?DocumentNode> {\n let text\n try {\n text = await fs.readFile(file, `utf8`)\n } catch (err) {\n addError({\n id: `85913`,\n filePath: file,\n context: {\n filePath: file,\n },\n error: err,\n })\n\n boundActionCreators.queryExtractionGraphQLError({\n componentPath: file,\n })\n return null\n }\n\n if (!text.includes(`graphql`)) return null\n const hash = crypto\n .createHash(`md5`)\n .update(file)\n .update(text)\n .digest(`hex`)\n\n try {\n const astDefinitions =\n cache[hash] ||\n (cache[hash] = await findGraphQLTags(file, text, {\n parentSpan: this.parentSpan,\n addError,\n }))\n\n // If any AST definitions were extracted, report success.\n // This can mean there is none or there was a babel error when\n // we tried to extract the graphql AST.\n if (astDefinitions.length > 0) {\n boundActionCreators.queryExtractedBabelSuccess({\n componentPath: file,\n })\n }\n\n return astDefinitions\n } catch (err) {\n // default error\n let structuredError = {\n id: `85915`,\n context: {\n filePath: file,\n },\n }\n\n if (err instanceof StringInterpolationNotAllowedError) {\n const location = {\n start: err.interpolationStart,\n end: err.interpolationEnd,\n }\n structuredError = {\n id: `85916`,\n location,\n context: {\n codeFrame: codeFrameColumns(text, location, {\n highlightCode: process.env.FORCE_COLOR !== `0`,\n }),\n },\n }\n } else if (err instanceof EmptyGraphQLTagError) {\n const location = err.templateLoc\n ? {\n start: err.templateLoc.start,\n end: err.templateLoc.end,\n }\n : null\n\n structuredError = {\n id: `85917`,\n location,\n context: {\n codeFrame: location\n ? codeFrameColumns(text, location, {\n highlightCode: process.env.FORCE_COLOR !== `0`,\n })\n : null,\n },\n }\n } else if (err instanceof GraphQLSyntaxError) {\n const location = {\n start: locInGraphQlToLocInFile(\n err.templateLoc,\n err.originalError.locations[0]\n ),\n }\n\n structuredError = {\n id: `85918`,\n location,\n context: {\n codeFrame: location\n ? codeFrameColumns(text, location, {\n highlightCode: process.env.FORCE_COLOR !== `0`,\n message: err.originalError.message,\n })\n : null,\n sourceMessage: err.originalError.message,\n },\n }\n }\n\n addError({\n ...structuredError,\n filePath: file,\n })\n\n boundActionCreators.queryExtractionGraphQLError({\n componentPath: file,\n })\n return null\n }\n }\n\n async parseFiles(\n files: Array<string>,\n addError\n ): Promise<Array<DocumentNode>> {\n const documents = []\n\n return Promise.all(\n files.map(file =>\n this.parseFile(file, addError).then(docs => {\n documents.push(...(docs || []))\n })\n )\n ).then(() => documents)\n }\n}\n"],"file":"file-parser.js"}
\No newline at end of file