gatsby 3.14.0-drupal-next.64 → 3.14.0-drupal-next.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +1 -0
  2. package/dist/bootstrap/schema-hot-reloader.js +2 -6
  3. package/dist/bootstrap/schema-hot-reloader.js.map +1 -1
  4. package/dist/commands/build-html.js +5 -5
  5. package/dist/commands/build-html.js.map +1 -1
  6. package/dist/commands/build.js +19 -8
  7. package/dist/commands/build.js.map +1 -1
  8. package/dist/query/query-runner.js +4 -2
  9. package/dist/query/query-runner.js.map +1 -1
  10. package/dist/redux/reducers/components.js +7 -2
  11. package/dist/redux/reducers/components.js.map +1 -1
  12. package/dist/redux/reducers/queries.js +15 -12
  13. package/dist/redux/reducers/queries.js.map +1 -1
  14. package/dist/services/build-schema.js +2 -1
  15. package/dist/services/build-schema.js.map +1 -1
  16. package/dist/utils/api-runner-node.js +28 -12
  17. package/dist/utils/api-runner-node.js.map +1 -1
  18. package/dist/utils/source-nodes.js +4 -1
  19. package/dist/utils/source-nodes.js.map +1 -1
  20. package/dist/utils/tracer/index.js +2 -2
  21. package/dist/utils/tracer/index.js.map +1 -1
  22. package/dist/utils/worker/child/index.js +5 -0
  23. package/dist/utils/worker/child/index.js.map +1 -1
  24. package/dist/utils/worker/child/queries.js +0 -9
  25. package/dist/utils/worker/child/queries.js.map +1 -1
  26. package/dist/utils/worker/pool.js +8 -4
  27. package/dist/utils/worker/pool.js.map +1 -1
  28. package/gatsby-admin-public/app-552da616a99bc886bb71.js.map +1 -1
  29. package/gatsby-admin-public/chunk-map.json +1 -1
  30. package/gatsby-admin-public/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.js.map +1 -1
  31. package/gatsby-admin-public/index.html +1 -1
  32. package/gatsby-admin-public/page-data/app-data.json +1 -1
  33. package/gatsby-admin-public/pages/index.html +1 -1
  34. package/gatsby-admin-public/plugins/index.html +1 -1
  35. package/gatsby-admin-public/polyfill-1052586767322c15619a.js +2 -0
  36. package/gatsby-admin-public/polyfill-1052586767322c15619a.js.map +1 -0
  37. package/gatsby-admin-public/recipe/index.html +1 -1
  38. package/gatsby-admin-public/recipes/index.html +1 -1
  39. package/gatsby-admin-public/{webpack-runtime-9ec715c9b8353233cfbe.js → webpack-runtime-d39de238447331b7e7f5.js} +2 -2
  40. package/gatsby-admin-public/{webpack-runtime-ca90b708571af46f6477.js.map → webpack-runtime-d39de238447331b7e7f5.js.map} +1 -1
  41. package/gatsby-admin-public/webpack.stats.json +1 -1
  42. package/package.json +2 -2
  43. package/gatsby-admin-public/polyfill-85cdcdc6d8017a8c93f4.js +0 -2
  44. package/gatsby-admin-public/polyfill-85cdcdc6d8017a8c93f4.js.map +0 -1
  45. package/gatsby-admin-public/webpack-runtime-9ec715c9b8353233cfbe.js.map +0 -1
  46. package/gatsby-admin-public/webpack-runtime-ca90b708571af46f6477.js +0 -2
package/README.md CHANGED
@@ -10,6 +10,7 @@
10
10
  <h3 align="center">
11
11
  ⚛️ 📄 🚀
12
12
  </h3>
13
+
13
14
  <h3 align="center">
14
15
  Fast in every way that matters
15
16
  </h3>
@@ -11,8 +11,6 @@ var _lodash = require("lodash");
11
11
 
12
12
  var _redux = require("../redux");
13
13
 
14
- var _schema = require("../schema");
15
-
16
14
  var _inferenceMetadata = require("../schema/infer/inference-metadata");
17
15
 
18
16
  var _queryWatcher = require("../query/query-watcher");
@@ -35,10 +33,8 @@ const maybeRebuildSchema = (0, _lodash.debounce)(async () => {
35
33
 
36
34
  const activity = _reporter.default.activityTimer(`rebuild schema`);
37
35
 
38
- activity.start();
39
- await (0, _schema.rebuild)({
40
- parentSpan: activity
41
- });
36
+ activity.start(); // await rebuild({ parentSpan: activity })
37
+
42
38
  await (0, _queryWatcher.updateStateAndRunQueries)(false, {
43
39
  parentSpan: activity.span
44
40
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bootstrap/schema-hot-reloader.ts"],"names":["inferredTypesChanged","typeMap","prevTypeMap","Object","keys","some","type","dirty","lastMetadata","maybeRebuildSchema","inferenceMetadata","store","getState","activity","report","activityTimer","start","parentSpan","span","end","snapshotInferenceMetadata","bootstrapSchemaHotReloader","emitter","on","startSchemaHotReloader","stopSchemaHotReloader","off","cancel"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA,MAAMA,oBAAoB,GAAG,CAC3BC,OAD2B,EAE3BC,WAF2B,KAI3BC,MAAM,CAACC,IAAP,CAAYH,OAAZ,EAAqBI,IAArB,CACEC,IAAI,IACFL,OAAO,CAACK,IAAD,CAAP,CAAcC,KAAd,IAAuB,CAAC,wCAAgBN,OAAO,CAACK,IAAD,CAAvB,EAA+BJ,WAAW,CAACI,IAAD,CAA1C,CAF5B,CAJF;;AASA,IAAIE,YAAJ,C,CAEA;AACA;;AACA,MAAMC,kBAAkB,GAAG,sBAAS,YAA2B;AAC7D,QAAM;AAAEC,IAAAA;AAAF,MAAwBC,aAAMC,QAAN,EAA9B;;AAEA,MAAI,CAACZ,oBAAoB,CAACU,iBAAiB,CAACT,OAAnB,EAA4BO,YAAY,CAACP,OAAzC,CAAzB,EAA4E;AAC1E;AACD;;AAED,QAAMY,QAAQ,GAAGC,kBAAOC,aAAP,CAAsB,gBAAtB,CAAjB;;AACAF,EAAAA,QAAQ,CAACG,KAAT;AACA,QAAM,qBAAQ;AAAEC,IAAAA,UAAU,EAAEJ;AAAd,GAAR,CAAN;AACA,QAAM,4CAAyB,KAAzB,EAAgC;AAAEI,IAAAA,UAAU,EAAEJ,QAAQ,CAACK;AAAvB,GAAhC,CAAN;AACAL,EAAAA,QAAQ,CAACM,GAAT;AACD,CAZ0B,EAYxB,IAZwB,CAA3B;;AAcA,SAASC,yBAAT,GAA2C;AACzC,QAAM;AAAEV,IAAAA;AAAF,MAAwBC,aAAMC,QAAN,EAA9B;;AACAJ,EAAAA,YAAY,GAAG,uBAAUE,iBAAV,CAAf;AACD;;AAEM,SAASW,0BAAT,GAA4C;AACjD;AACA;AACA;AACAD,EAAAA,yBAAyB;;AACzBE,iBAAQC,EAAR,CAAY,YAAZ,EAAyBH,yBAAzB;;AAEAI,EAAAA,sBAAsB;AACvB;;AAEM,SAASA,sBAAT,GAAwC;AAC7C;AACA;AACAF,iBAAQC,EAAR,CAAY,yBAAZ,EAAsCd,kBAAtC;AACD;;AAEM,SAASgB,qBAAT,GAAuC;AAC5CH,iBAAQI,GAAR,CAAa,yBAAb,EAAuCjB,kBAAvC;;AACAA,EAAAA,kBAAkB,CAACkB,MAAnB;AACD","sourcesContent":["import { debounce, cloneDeep } from \"lodash\"\nimport { emitter, store } from \"../redux\"\nimport { rebuild } from \"../schema\"\nimport { haveEqualFields } from \"../schema/infer/inference-metadata\"\nimport { updateStateAndRunQueries } from \"../query/query-watcher\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport { IGatsbyState } from \"../redux/types\"\n\ntype TypeMap = IGatsbyState[\"inferenceMetadata\"][\"typeMap\"]\ntype InferenceMetadata = IGatsbyState[\"inferenceMetadata\"]\n\nconst inferredTypesChanged = (\n typeMap: TypeMap,\n prevTypeMap: TypeMap\n): boolean =>\n Object.keys(typeMap).some(\n type =>\n typeMap[type].dirty && !haveEqualFields(typeMap[type], prevTypeMap[type])\n )\n\nlet lastMetadata: InferenceMetadata\n\n// API_RUNNING_QUEUE_EMPTY could be emitted multiple types\n// in a short period of time, so debounce seems reasonable\nconst maybeRebuildSchema = debounce(async (): Promise<void> => {\n const { inferenceMetadata } = store.getState()\n\n if (!inferredTypesChanged(inferenceMetadata.typeMap, lastMetadata.typeMap)) {\n return\n }\n\n const activity = report.activityTimer(`rebuild schema`)\n activity.start()\n await rebuild({ parentSpan: activity })\n await updateStateAndRunQueries(false, { parentSpan: activity.span })\n activity.end()\n}, 1000)\n\nfunction snapshotInferenceMetadata(): void {\n const { inferenceMetadata } = store.getState()\n lastMetadata = cloneDeep(inferenceMetadata)\n}\n\nexport function bootstrapSchemaHotReloader(): void {\n // Snapshot inference metadata at the time of the last schema rebuild\n // (even if schema was rebuilt elsewhere)\n // Using the snapshot later to check if inferred types actually changed since the last rebuild\n snapshotInferenceMetadata()\n emitter.on(`SET_SCHEMA`, snapshotInferenceMetadata)\n\n startSchemaHotReloader()\n}\n\nexport function startSchemaHotReloader(): void {\n // Listen for node changes outside of a regular sourceNodes API call,\n // e.g. markdown file update via watcher\n emitter.on(`API_RUNNING_QUEUE_EMPTY`, maybeRebuildSchema)\n}\n\nexport function stopSchemaHotReloader(): void {\n emitter.off(`API_RUNNING_QUEUE_EMPTY`, maybeRebuildSchema)\n maybeRebuildSchema.cancel()\n}\n"],"file":"schema-hot-reloader.js"}
1
+ {"version":3,"sources":["../../src/bootstrap/schema-hot-reloader.ts"],"names":["inferredTypesChanged","typeMap","prevTypeMap","Object","keys","some","type","dirty","lastMetadata","maybeRebuildSchema","inferenceMetadata","store","getState","activity","report","activityTimer","start","parentSpan","span","end","snapshotInferenceMetadata","bootstrapSchemaHotReloader","emitter","on","startSchemaHotReloader","stopSchemaHotReloader","off","cancel"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AAMA,MAAMA,oBAAoB,GAAG,CAC3BC,OAD2B,EAE3BC,WAF2B,KAI3BC,MAAM,CAACC,IAAP,CAAYH,OAAZ,EAAqBI,IAArB,CACEC,IAAI,IACFL,OAAO,CAACK,IAAD,CAAP,CAAcC,KAAd,IAAuB,CAAC,wCAAgBN,OAAO,CAACK,IAAD,CAAvB,EAA+BJ,WAAW,CAACI,IAAD,CAA1C,CAF5B,CAJF;;AASA,IAAIE,YAAJ,C,CAEA;AACA;;AACA,MAAMC,kBAAkB,GAAG,sBAAS,YAA2B;AAC7D,QAAM;AAAEC,IAAAA;AAAF,MAAwBC,aAAMC,QAAN,EAA9B;;AAEA,MAAI,CAACZ,oBAAoB,CAACU,iBAAiB,CAACT,OAAnB,EAA4BO,YAAY,CAACP,OAAzC,CAAzB,EAA4E;AAC1E;AACD;;AAED,QAAMY,QAAQ,GAAGC,kBAAOC,aAAP,CAAsB,gBAAtB,CAAjB;;AACAF,EAAAA,QAAQ,CAACG,KAAT,GAR6D,CAS7D;;AACA,QAAM,4CAAyB,KAAzB,EAAgC;AAAEC,IAAAA,UAAU,EAAEJ,QAAQ,CAACK;AAAvB,GAAhC,CAAN;AACAL,EAAAA,QAAQ,CAACM,GAAT;AACD,CAZ0B,EAYxB,IAZwB,CAA3B;;AAcA,SAASC,yBAAT,GAA2C;AACzC,QAAM;AAAEV,IAAAA;AAAF,MAAwBC,aAAMC,QAAN,EAA9B;;AACAJ,EAAAA,YAAY,GAAG,uBAAUE,iBAAV,CAAf;AACD;;AAEM,SAASW,0BAAT,GAA4C;AACjD;AACA;AACA;AACAD,EAAAA,yBAAyB;;AACzBE,iBAAQC,EAAR,CAAY,YAAZ,EAAyBH,yBAAzB;;AAEAI,EAAAA,sBAAsB;AACvB;;AAEM,SAASA,sBAAT,GAAwC;AAC7C;AACA;AACAF,iBAAQC,EAAR,CAAY,yBAAZ,EAAsCd,kBAAtC;AACD;;AAEM,SAASgB,qBAAT,GAAuC;AAC5CH,iBAAQI,GAAR,CAAa,yBAAb,EAAuCjB,kBAAvC;;AACAA,EAAAA,kBAAkB,CAACkB,MAAnB;AACD","sourcesContent":["import { debounce, cloneDeep } from \"lodash\"\nimport { emitter, store } from \"../redux\"\nimport { rebuild } from \"../schema\"\nimport { haveEqualFields } from \"../schema/infer/inference-metadata\"\nimport { updateStateAndRunQueries } from \"../query/query-watcher\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport { IGatsbyState } from \"../redux/types\"\n\ntype TypeMap = IGatsbyState[\"inferenceMetadata\"][\"typeMap\"]\ntype InferenceMetadata = IGatsbyState[\"inferenceMetadata\"]\n\nconst inferredTypesChanged = (\n typeMap: TypeMap,\n prevTypeMap: TypeMap\n): boolean =>\n Object.keys(typeMap).some(\n type =>\n typeMap[type].dirty && !haveEqualFields(typeMap[type], prevTypeMap[type])\n )\n\nlet lastMetadata: InferenceMetadata\n\n// API_RUNNING_QUEUE_EMPTY could be emitted multiple types\n// in a short period of time, so debounce seems reasonable\nconst maybeRebuildSchema = debounce(async (): Promise<void> => {\n const { inferenceMetadata } = store.getState()\n\n if (!inferredTypesChanged(inferenceMetadata.typeMap, lastMetadata.typeMap)) {\n return\n }\n\n const activity = report.activityTimer(`rebuild schema`)\n activity.start()\n // await rebuild({ parentSpan: activity })\n await updateStateAndRunQueries(false, { parentSpan: activity.span })\n activity.end()\n}, 1000)\n\nfunction snapshotInferenceMetadata(): void {\n const { inferenceMetadata } = store.getState()\n lastMetadata = cloneDeep(inferenceMetadata)\n}\n\nexport function bootstrapSchemaHotReloader(): void {\n // Snapshot inference metadata at the time of the last schema rebuild\n // (even if schema was rebuilt elsewhere)\n // Using the snapshot later to check if inferred types actually changed since the last rebuild\n snapshotInferenceMetadata()\n emitter.on(`SET_SCHEMA`, snapshotInferenceMetadata)\n\n startSchemaHotReloader()\n}\n\nexport function startSchemaHotReloader(): void {\n // Listen for node changes outside of a regular sourceNodes API call,\n // e.g. markdown file update via watcher\n emitter.on(`API_RUNNING_QUEUE_EMPTY`, maybeRebuildSchema)\n}\n\nexport function stopSchemaHotReloader(): void {\n emitter.off(`API_RUNNING_QUEUE_EMPTY`, maybeRebuildSchema)\n maybeRebuildSchema.cancel()\n}\n"],"file":"schema-hot-reloader.js"}
@@ -338,8 +338,6 @@ const doBuildPages = async (rendererPath, pagePaths, activity, workerPool, stage
338
338
  });
339
339
  } else {
340
340
  _reporter.default.error(pageDataMessage);
341
-
342
- _reporter.default.error(error);
343
341
  }
344
342
  } // Don't crash the builder when we're in preview-mode.
345
343
 
@@ -372,7 +370,7 @@ exports.buildHTML = buildHTML;
372
370
  async function buildHTMLPagesAndDeleteStaleArtifacts({
373
371
  pageRenderer,
374
372
  workerPool,
375
- buildSpan,
373
+ parentSpan,
376
374
  program
377
375
  }) {
378
376
  buildUtils.markHtmlDirtyIfResultOfUsedStaticQueryChanged();
@@ -389,7 +387,7 @@ async function buildHTMLPagesAndDeleteStaleArtifacts({
389
387
 
390
388
  if (toRegenerate.length > 0) {
391
389
  const buildHTMLActivityProgress = _reporter.default.createProgress(`Building static HTML for pages`, toRegenerate.length, 0, {
392
- parentSpan: buildSpan
390
+ parentSpan
393
391
  });
394
392
 
395
393
  buildHTMLActivityProgress.start();
@@ -433,7 +431,9 @@ async function buildHTMLPagesAndDeleteStaleArtifacts({
433
431
  if (toDelete.length > 0) {
434
432
  const publicDir = path.join(program.directory, `public`);
435
433
 
436
- const deletePageDataActivityTimer = _reporter.default.activityTimer(`Delete previous page data`);
434
+ const deletePageDataActivityTimer = _reporter.default.activityTimer(`Delete previous page data`, {
435
+ parentSpan
436
+ });
437
437
 
438
438
  deletePageDataActivityTimer.start();
439
439
  await buildUtils.removePageFiles(publicDir, toDelete);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/build-html.ts"],"names":["isPreview","process","env","GATSBY_IS_PREVIEW","devssrWebpackCompiler","devssrWebpackWatcher","needToRecompileSSRBundle","getDevSSRWebpack","gatsby_executing_command","Error","oldHash","newHash","runWebpack","compilerConfig","stage","directory","parentSpan","Bluebird","resolve","reject","GATSBY_EXPERIMENTAL_DEV_SSR","compiler","run","err","stats","activity","GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE","reporter","activityTimer","start","waitForCompilerClose","Promise","close","error","end","hooks","invalid","tap","watch","ignored","emitter","emit","suspend","hash","restartWorker","require","doBuildRenderer","webpackConfig","hasErrors","panic","compilation","errors","store","getState","html","ssrCompilationHash","dispatch","type","payload","rendererPath","buildRenderer","program","config","deleteRenderer","fs","remove","e","renderHTMLQueue","workerPool","htmlComponentRendererPath","pages","Stage","BuildHTML","envVars","NODE_ENV","gatsby_log_level","segments","sessionId","Date","now","renderHTML","single","renderHTMLProd","renderHTMLDev","uniqueUnsafeBuiltinUsedStacks","Set","map","pageSegment","renderHTMLResult","paths","seenErrors","errorMessages","Map","all","Object","entries","previewErrors","pagePath","has","stack","set","pagePaths","add","prettyError","errorMessageStr","codeFrame","errorMessage","get","push","value","values","p","join","id","context","htmlRenderMeta","_pagePath","arrayOfUsages","unsafeBuiltinsUsageByPagePath","unsafeUsageStack","tick","length","size","console","warn","unsafeBuiltinUsedStack","warningMessage","BuildHTMLError","constructor","message","getOwnPropertyNames","forEach","key","truncateObjStrings","obj","doBuildPages","buildError","path","pageData","truncatedPageData","pageDataMessage","JSON","stringify","buildHTML","span","buildHTMLPagesAndDeleteStaleArtifacts","pageRenderer","buildSpan","buildUtils","markHtmlDirtyIfResultOfUsedStaticQueryChanged","toRegenerate","toDelete","toCleanupFromTrackedState","calcDirtyHtmlFiles","buildHTMLActivityProgress","createProgress","errorPath","ref","match","info","keepPageRenderer","publicDir","deletePageDataActivityTimer","removePageFiles"],"mappings":"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","sourcesContent":["import Bluebird from \"bluebird\"\nimport fs from \"fs-extra\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { createErrorFromString } from \"gatsby-cli/lib/reporter/errors\"\nimport { chunk, truncate } from \"lodash\"\nimport webpack, { Stats } from \"webpack\"\nimport * as path from \"path\"\n\nimport { emitter, store } from \"../redux\"\nimport { IWebpackWatchingPauseResume } from \"../utils/start-server\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport * as buildUtils from \"./build-utils\"\nimport { getPageData } from \"../utils/get-page-data\"\n\nimport { Span } from \"opentracing\"\nimport { IProgram, Stage } from \"./types\"\nimport { PackageJson } from \"../..\"\nimport type { GatsbyWorkerPool } from \"../utils/worker/pool\"\nimport { IPageDataWithQueryResult } from \"../utils/page-data\"\nimport { processNodeManifests } from \"../utils/node-manifest\"\n\ntype IActivity = any // TODO\n\nconst isPreview =\n typeof process.env.GATSBY_IS_PREVIEW === `boolean`\n ? process.env.GATSBY_IS_PREVIEW\n : process.env.GATSBY_IS_PREVIEW === `true`\n\nexport interface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n logPages: boolean\n writeToFile: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n keepPageRenderer: boolean\n}\n\nlet devssrWebpackCompiler: webpack.Compiler\nlet devssrWebpackWatcher: IWebpackWatchingPauseResume\nlet needToRecompileSSRBundle = true\nexport const getDevSSRWebpack = (): {\n devssrWebpackWatcher: IWebpackWatchingPauseResume\n devssrWebpackCompiler: webpack.Compiler\n needToRecompileSSRBundle: boolean\n} => {\n if (process.env.gatsby_executing_command !== `develop`) {\n throw new Error(`This function can only be called in development`)\n }\n\n return {\n devssrWebpackWatcher,\n devssrWebpackCompiler,\n needToRecompileSSRBundle,\n }\n}\n\nlet oldHash = ``\nlet newHash = ``\nconst runWebpack = (\n compilerConfig,\n stage: Stage,\n directory,\n parentSpan?: Span\n): Bluebird<{\n stats: Stats\n waitForCompilerClose: Promise<void>\n}> =>\n new Bluebird((resolve, reject) => {\n if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR || stage === `build-html`) {\n const compiler = webpack(compilerConfig)\n compiler.run((err, stats) => {\n let activity\n if (process.env.GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE) {\n activity = reporter.activityTimer(\n `Caching HTML renderer compilation`,\n { parentSpan }\n )\n activity.start()\n }\n\n const waitForCompilerClose = new Promise<void>((resolve, reject) => {\n compiler.close(error => {\n if (activity) {\n activity.end()\n }\n\n if (error) {\n return reject(error)\n }\n return resolve()\n })\n })\n\n if (err) {\n return reject(err)\n } else {\n return resolve({ stats: stats as Stats, waitForCompilerClose })\n }\n })\n } else if (\n process.env.GATSBY_EXPERIMENTAL_DEV_SSR &&\n stage === `develop-html`\n ) {\n devssrWebpackCompiler = webpack(compilerConfig)\n devssrWebpackCompiler.hooks.invalid.tap(`ssr file invalidation`, () => {\n needToRecompileSSRBundle = true\n })\n devssrWebpackWatcher = devssrWebpackCompiler.watch(\n {\n ignored: /node_modules/,\n },\n (err, stats) => {\n needToRecompileSSRBundle = false\n emitter.emit(`DEV_SSR_COMPILATION_DONE`)\n devssrWebpackWatcher.suspend()\n\n if (err) {\n return reject(err)\n } else {\n newHash = stats?.hash || ``\n\n const {\n restartWorker,\n } = require(`../utils/dev-ssr/render-dev-html`)\n // Make sure we use the latest version during development\n if (oldHash !== `` && newHash !== oldHash) {\n restartWorker(`${directory}/public/render-page.js`)\n }\n\n oldHash = newHash\n\n return resolve({\n stats: stats as Stats,\n waitForCompilerClose: Promise.resolve(),\n })\n }\n }\n ) as IWebpackWatchingPauseResume\n }\n })\n\nconst doBuildRenderer = async (\n { directory }: IProgram,\n webpackConfig: webpack.Configuration,\n stage: Stage,\n parentSpan?: Span\n): Promise<{ rendererPath: string; waitForCompilerClose }> => {\n const { stats, waitForCompilerClose } = await runWebpack(\n webpackConfig,\n stage,\n directory,\n parentSpan\n )\n if (stats.hasErrors()) {\n reporter.panic(structureWebpackErrors(stage, stats.compilation.errors))\n }\n\n if (\n stage === `build-html` &&\n store.getState().html.ssrCompilationHash !== stats.hash\n ) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: stats.hash as string,\n })\n }\n\n // render-page.js is hard coded in webpack.config\n return {\n rendererPath: `${directory}/public/render-page.js`,\n waitForCompilerClose,\n }\n}\n\nexport const buildRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<{ rendererPath: string; waitForCompilerClose }> => {\n const { directory } = program\n const config = await webpackConfig(program, directory, stage, null, {\n parentSpan,\n })\n\n return doBuildRenderer(program, config, stage, parentSpan)\n}\n\nexport const deleteRenderer = async (rendererPath: string): Promise<void> => {\n try {\n await fs.remove(rendererPath)\n await fs.remove(`${rendererPath}.map`)\n } catch (e) {\n // This function will fail on Windows with no further consequences.\n }\n}\n\nexport interface IRenderHtmlResult {\n unsafeBuiltinsUsageByPagePath: Record<string, Array<string>>\n previewErrors: Record<string, any>\n}\n\nconst renderHTMLQueue = async (\n workerPool: GatsbyWorkerPool,\n activity: IActivity,\n htmlComponentRendererPath: string,\n pages: Array<string>,\n stage: Stage = Stage.BuildHTML\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars: Array<[string, string | undefined]> = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n\n const sessionId = Date.now()\n\n const renderHTML =\n stage === `build-html`\n ? workerPool.single.renderHTMLProd\n : workerPool.single.renderHTMLDev\n\n const uniqueUnsafeBuiltinUsedStacks = new Set<string>()\n\n try {\n await Bluebird.map(segments, async pageSegment => {\n const renderHTMLResult = await renderHTML({\n envVars,\n htmlComponentRendererPath,\n paths: pageSegment,\n sessionId,\n })\n\n if (isPreview) {\n const seenErrors = new Set()\n const errorMessages = new Map()\n await Promise.all(\n Object.entries(renderHTMLResult.previewErrors).map(\n async ([pagePath, error]) => {\n if (!seenErrors.has(error.stack)) {\n errorMessages.set(error.stack, {\n pagePaths: [pagePath],\n })\n seenErrors.add(error.stack)\n const prettyError = await createErrorFromString(\n error.stack,\n `${htmlComponentRendererPath}.map`\n )\n\n const errorMessageStr = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.errorMessage = errorMessageStr\n errorMessages.set(error.stack, errorMessage)\n } else {\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.pagePaths.push(pagePath)\n errorMessages.set(error.stack, errorMessage)\n }\n }\n )\n )\n\n for (const value of errorMessages.values()) {\n const errorMessage = `Preview build error for page path(s):\\n\\n${value.pagePaths\n .map(p => `- ${p}`)\n .join(`\\n`)}\\n\\n${value.errorMessage}`\n reporter.error({\n id: `95314`,\n context: { errorMessage },\n })\n }\n }\n\n if (stage === `build-html`) {\n const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult\n store.dispatch({\n type: `HTML_GENERATED`,\n payload: pageSegment,\n })\n\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n htmlRenderMeta.unsafeBuiltinsUsageByPagePath\n )) {\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n } catch (e) {\n if (e?.context?.unsafeBuiltinsUsageByPagePath) {\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n e.context.unsafeBuiltinsUsageByPagePath\n )) {\n // @ts-ignore TS doesn't know arrayOfUsages is Iterable\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n throw e\n } finally {\n if (uniqueUnsafeBuiltinUsedStacks.size > 0) {\n console.warn(\n `Unsafe builtin method was used, future builds will need to rebuild all pages`\n )\n store.dispatch({\n type: `SSR_USED_UNSAFE_BUILTIN`,\n })\n }\n\n for (const unsafeBuiltinUsedStack of uniqueUnsafeBuiltinUsedStacks) {\n const prettyError = await createErrorFromString(\n unsafeBuiltinUsedStack,\n `${htmlComponentRendererPath}.map`\n )\n\n const warningMessage = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n reporter.warn(warningMessage)\n }\n }\n}\n\nclass BuildHTMLError extends Error {\n codeFrame = ``\n context?: {\n path: string\n }\n\n constructor(error: Error) {\n super(error.message)\n\n // We must use getOwnProperty because keys like `stack` are not enumerable,\n // but we want to copy over the entire error\n Object.getOwnPropertyNames(error).forEach(key => {\n this[key] = error[key]\n })\n }\n}\n\nconst truncateObjStrings = (obj): IPageDataWithQueryResult => {\n // Recursively truncate strings nested in object\n // These objs can be quite large, but we want to preserve each field\n for (const key in obj) {\n if (typeof obj[key] === `object`) {\n truncateObjStrings(obj[key])\n } else if (typeof obj[key] === `string`) {\n obj[key] = truncate(obj[key], { length: 250 })\n }\n }\n\n return obj\n}\n\nexport const doBuildPages = async (\n rendererPath: string,\n pagePaths: Array<string>,\n activity: IActivity,\n workerPool: GatsbyWorkerPool,\n stage: Stage\n): Promise<void> => {\n try {\n await renderHTMLQueue(workerPool, activity, rendererPath, pagePaths, stage)\n } catch (error) {\n const prettyError = await createErrorFromString(\n error.stack,\n `${rendererPath}.map`\n )\n\n const buildError = new BuildHTMLError(prettyError)\n buildError.context = error.context\n\n if (error?.context?.path) {\n const pageData = await getPageData(error.context.path)\n const truncatedPageData = truncateObjStrings(pageData)\n\n const pageDataMessage = `Page data from page-data.json for the failed page \"${\n error.context.path\n }\": ${JSON.stringify(truncatedPageData, null, 2)}`\n\n // This is our only error during preview so customize it a bit + add the\n // pretty build error.\n if (isPreview) {\n reporter.error({\n id: `95314`,\n context: { pageData: pageDataMessage },\n error: buildError,\n })\n } else {\n reporter.error(pageDataMessage)\n reporter.error(error)\n }\n }\n\n // Don't crash the builder when we're in preview-mode.\n if (!isPreview) {\n throw buildError\n }\n }\n}\n\n// TODO remove in v4 - this could be a \"public\" api\nexport const buildHTML = async ({\n program,\n stage,\n pagePaths,\n activity,\n workerPool,\n}: {\n program: IProgram\n stage: Stage\n pagePaths: Array<string>\n activity: IActivity\n workerPool: GatsbyWorkerPool\n}): Promise<void> => {\n const { rendererPath } = await buildRenderer(program, stage, activity.span)\n await doBuildPages(rendererPath, pagePaths, activity, workerPool, stage)\n await deleteRenderer(rendererPath)\n}\n\nexport async function buildHTMLPagesAndDeleteStaleArtifacts({\n pageRenderer,\n workerPool,\n buildSpan,\n program,\n}: {\n pageRenderer: string\n workerPool: GatsbyWorkerPool\n buildSpan?: Span\n program: IBuildArgs\n}): Promise<{\n toRegenerate: Array<string>\n toDelete: Array<string>\n}> {\n buildUtils.markHtmlDirtyIfResultOfUsedStaticQueryChanged()\n\n const { toRegenerate, toDelete, toCleanupFromTrackedState } =\n buildUtils.calcDirtyHtmlFiles(store.getState())\n\n store.dispatch({\n type: `HTML_TRACKED_PAGES_CLEANUP`,\n payload: toCleanupFromTrackedState,\n })\n\n if (toRegenerate.length > 0) {\n const buildHTMLActivityProgress = reporter.createProgress(\n `Building static HTML for pages`,\n toRegenerate.length,\n 0,\n {\n parentSpan: buildSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await doBuildPages(\n pageRenderer,\n toRegenerate,\n buildHTMLActivityProgress,\n workerPool,\n Stage.BuildHTML\n )\n } catch (err) {\n let id = `95313` // TODO: verify error IDs exist\n const context = {\n errorPath: err.context && err.context.path,\n ref: ``,\n }\n\n const match = err.message.match(\n /ReferenceError: (window|document|localStorage|navigator|alert|location) is not defined/i\n )\n if (match && match[1]) {\n id = `95312`\n context.ref = match[1]\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n } else {\n reporter.info(`There are no new or changed html files to build.`)\n }\n\n // TODO move to per page builds in _routes directory\n if (!program.keepPageRenderer && _CFLAGS_.GATSBY_MAJOR !== `4`) {\n try {\n await deleteRenderer(pageRenderer)\n } catch (err) {\n // pass through\n }\n }\n\n if (toDelete.length > 0) {\n const publicDir = path.join(program.directory, `public`)\n const deletePageDataActivityTimer = reporter.activityTimer(\n `Delete previous page data`\n )\n deletePageDataActivityTimer.start()\n await buildUtils.removePageFiles(publicDir, toDelete)\n\n deletePageDataActivityTimer.end()\n }\n\n // we process node manifests in this location because we need to make sure all page-data.json files are written for gatsby as well as inc-builds (both call builHTMLPagesAndDeleteStaleArtifacts). Node manifests include a digest of the corresponding page-data.json file and at this point we can be sure page-data has been written out for the latest updates in gatsby build AND inc builds.\n await processNodeManifests()\n\n return { toRegenerate, toDelete }\n}\n"],"file":"build-html.js"}
1
+ {"version":3,"sources":["../../src/commands/build-html.ts"],"names":["isPreview","process","env","GATSBY_IS_PREVIEW","devssrWebpackCompiler","devssrWebpackWatcher","needToRecompileSSRBundle","getDevSSRWebpack","gatsby_executing_command","Error","oldHash","newHash","runWebpack","compilerConfig","stage","directory","parentSpan","Bluebird","resolve","reject","GATSBY_EXPERIMENTAL_DEV_SSR","compiler","run","err","stats","activity","GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE","reporter","activityTimer","start","waitForCompilerClose","Promise","close","error","end","hooks","invalid","tap","watch","ignored","emitter","emit","suspend","hash","restartWorker","require","doBuildRenderer","webpackConfig","hasErrors","panic","compilation","errors","store","getState","html","ssrCompilationHash","dispatch","type","payload","rendererPath","buildRenderer","program","config","deleteRenderer","fs","remove","e","renderHTMLQueue","workerPool","htmlComponentRendererPath","pages","Stage","BuildHTML","envVars","NODE_ENV","gatsby_log_level","segments","sessionId","Date","now","renderHTML","single","renderHTMLProd","renderHTMLDev","uniqueUnsafeBuiltinUsedStacks","Set","map","pageSegment","renderHTMLResult","paths","seenErrors","errorMessages","Map","all","Object","entries","previewErrors","pagePath","has","stack","set","pagePaths","add","prettyError","errorMessageStr","codeFrame","errorMessage","get","push","value","values","p","join","id","context","htmlRenderMeta","_pagePath","arrayOfUsages","unsafeBuiltinsUsageByPagePath","unsafeUsageStack","tick","length","size","console","warn","unsafeBuiltinUsedStack","warningMessage","BuildHTMLError","constructor","message","getOwnPropertyNames","forEach","key","truncateObjStrings","obj","doBuildPages","buildError","path","pageData","truncatedPageData","pageDataMessage","JSON","stringify","buildHTML","span","buildHTMLPagesAndDeleteStaleArtifacts","pageRenderer","buildUtils","markHtmlDirtyIfResultOfUsedStaticQueryChanged","toRegenerate","toDelete","toCleanupFromTrackedState","calcDirtyHtmlFiles","buildHTMLActivityProgress","createProgress","errorPath","ref","match","info","keepPageRenderer","publicDir","deletePageDataActivityTimer","removePageFiles"],"mappings":"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","sourcesContent":["import Bluebird from \"bluebird\"\nimport fs from \"fs-extra\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { createErrorFromString } from \"gatsby-cli/lib/reporter/errors\"\nimport { chunk, truncate } from \"lodash\"\nimport webpack, { Stats } from \"webpack\"\nimport * as path from \"path\"\n\nimport { emitter, store } from \"../redux\"\nimport { IWebpackWatchingPauseResume } from \"../utils/start-server\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport * as buildUtils from \"./build-utils\"\nimport { getPageData } from \"../utils/get-page-data\"\n\nimport { Span } from \"opentracing\"\nimport { IProgram, Stage } from \"./types\"\nimport { PackageJson } from \"../..\"\nimport type { GatsbyWorkerPool } from \"../utils/worker/pool\"\nimport { IPageDataWithQueryResult } from \"../utils/page-data\"\nimport { processNodeManifests } from \"../utils/node-manifest\"\n\ntype IActivity = any // TODO\n\nconst isPreview =\n typeof process.env.GATSBY_IS_PREVIEW === `boolean`\n ? process.env.GATSBY_IS_PREVIEW\n : process.env.GATSBY_IS_PREVIEW === `true`\n\nexport interface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n logPages: boolean\n writeToFile: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n keepPageRenderer: boolean\n}\n\nlet devssrWebpackCompiler: webpack.Compiler\nlet devssrWebpackWatcher: IWebpackWatchingPauseResume\nlet needToRecompileSSRBundle = true\nexport const getDevSSRWebpack = (): {\n devssrWebpackWatcher: IWebpackWatchingPauseResume\n devssrWebpackCompiler: webpack.Compiler\n needToRecompileSSRBundle: boolean\n} => {\n if (process.env.gatsby_executing_command !== `develop`) {\n throw new Error(`This function can only be called in development`)\n }\n\n return {\n devssrWebpackWatcher,\n devssrWebpackCompiler,\n needToRecompileSSRBundle,\n }\n}\n\nlet oldHash = ``\nlet newHash = ``\nconst runWebpack = (\n compilerConfig,\n stage: Stage,\n directory,\n parentSpan?: Span\n): Bluebird<{\n stats: Stats\n waitForCompilerClose: Promise<void>\n}> =>\n new Bluebird((resolve, reject) => {\n if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR || stage === `build-html`) {\n const compiler = webpack(compilerConfig)\n compiler.run((err, stats) => {\n let activity\n if (process.env.GATSBY_EXPERIMENTAL_PRESERVE_WEBPACK_CACHE) {\n activity = reporter.activityTimer(\n `Caching HTML renderer compilation`,\n { parentSpan }\n )\n activity.start()\n }\n\n const waitForCompilerClose = new Promise<void>((resolve, reject) => {\n compiler.close(error => {\n if (activity) {\n activity.end()\n }\n\n if (error) {\n return reject(error)\n }\n return resolve()\n })\n })\n\n if (err) {\n return reject(err)\n } else {\n return resolve({ stats: stats as Stats, waitForCompilerClose })\n }\n })\n } else if (\n process.env.GATSBY_EXPERIMENTAL_DEV_SSR &&\n stage === `develop-html`\n ) {\n devssrWebpackCompiler = webpack(compilerConfig)\n devssrWebpackCompiler.hooks.invalid.tap(`ssr file invalidation`, () => {\n needToRecompileSSRBundle = true\n })\n devssrWebpackWatcher = devssrWebpackCompiler.watch(\n {\n ignored: /node_modules/,\n },\n (err, stats) => {\n needToRecompileSSRBundle = false\n emitter.emit(`DEV_SSR_COMPILATION_DONE`)\n devssrWebpackWatcher.suspend()\n\n if (err) {\n return reject(err)\n } else {\n newHash = stats?.hash || ``\n\n const {\n restartWorker,\n } = require(`../utils/dev-ssr/render-dev-html`)\n // Make sure we use the latest version during development\n if (oldHash !== `` && newHash !== oldHash) {\n restartWorker(`${directory}/public/render-page.js`)\n }\n\n oldHash = newHash\n\n return resolve({\n stats: stats as Stats,\n waitForCompilerClose: Promise.resolve(),\n })\n }\n }\n ) as IWebpackWatchingPauseResume\n }\n })\n\nconst doBuildRenderer = async (\n { directory }: IProgram,\n webpackConfig: webpack.Configuration,\n stage: Stage,\n parentSpan?: Span\n): Promise<{ rendererPath: string; waitForCompilerClose }> => {\n const { stats, waitForCompilerClose } = await runWebpack(\n webpackConfig,\n stage,\n directory,\n parentSpan\n )\n if (stats.hasErrors()) {\n reporter.panic(structureWebpackErrors(stage, stats.compilation.errors))\n }\n\n if (\n stage === `build-html` &&\n store.getState().html.ssrCompilationHash !== stats.hash\n ) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: stats.hash as string,\n })\n }\n\n // render-page.js is hard coded in webpack.config\n return {\n rendererPath: `${directory}/public/render-page.js`,\n waitForCompilerClose,\n }\n}\n\nexport const buildRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<{ rendererPath: string; waitForCompilerClose }> => {\n const { directory } = program\n const config = await webpackConfig(program, directory, stage, null, {\n parentSpan,\n })\n\n return doBuildRenderer(program, config, stage, parentSpan)\n}\n\nexport const deleteRenderer = async (rendererPath: string): Promise<void> => {\n try {\n await fs.remove(rendererPath)\n await fs.remove(`${rendererPath}.map`)\n } catch (e) {\n // This function will fail on Windows with no further consequences.\n }\n}\n\nexport interface IRenderHtmlResult {\n unsafeBuiltinsUsageByPagePath: Record<string, Array<string>>\n previewErrors: Record<string, any>\n}\n\nconst renderHTMLQueue = async (\n workerPool: GatsbyWorkerPool,\n activity: IActivity,\n htmlComponentRendererPath: string,\n pages: Array<string>,\n stage: Stage = Stage.BuildHTML\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars: Array<[string, string | undefined]> = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n\n const sessionId = Date.now()\n\n const renderHTML =\n stage === `build-html`\n ? workerPool.single.renderHTMLProd\n : workerPool.single.renderHTMLDev\n\n const uniqueUnsafeBuiltinUsedStacks = new Set<string>()\n\n try {\n await Bluebird.map(segments, async pageSegment => {\n const renderHTMLResult = await renderHTML({\n envVars,\n htmlComponentRendererPath,\n paths: pageSegment,\n sessionId,\n })\n\n if (isPreview) {\n const seenErrors = new Set()\n const errorMessages = new Map()\n await Promise.all(\n Object.entries(renderHTMLResult.previewErrors).map(\n async ([pagePath, error]) => {\n if (!seenErrors.has(error.stack)) {\n errorMessages.set(error.stack, {\n pagePaths: [pagePath],\n })\n seenErrors.add(error.stack)\n const prettyError = await createErrorFromString(\n error.stack,\n `${htmlComponentRendererPath}.map`\n )\n\n const errorMessageStr = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.errorMessage = errorMessageStr\n errorMessages.set(error.stack, errorMessage)\n } else {\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.pagePaths.push(pagePath)\n errorMessages.set(error.stack, errorMessage)\n }\n }\n )\n )\n\n for (const value of errorMessages.values()) {\n const errorMessage = `Preview build error for page path(s):\\n\\n${value.pagePaths\n .map(p => `- ${p}`)\n .join(`\\n`)}\\n\\n${value.errorMessage}`\n reporter.error({\n id: `95314`,\n context: { errorMessage },\n })\n }\n }\n\n if (stage === `build-html`) {\n const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult\n store.dispatch({\n type: `HTML_GENERATED`,\n payload: pageSegment,\n })\n\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n htmlRenderMeta.unsafeBuiltinsUsageByPagePath\n )) {\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n } catch (e) {\n if (e?.context?.unsafeBuiltinsUsageByPagePath) {\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n e.context.unsafeBuiltinsUsageByPagePath\n )) {\n // @ts-ignore TS doesn't know arrayOfUsages is Iterable\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n throw e\n } finally {\n if (uniqueUnsafeBuiltinUsedStacks.size > 0) {\n console.warn(\n `Unsafe builtin method was used, future builds will need to rebuild all pages`\n )\n store.dispatch({\n type: `SSR_USED_UNSAFE_BUILTIN`,\n })\n }\n\n for (const unsafeBuiltinUsedStack of uniqueUnsafeBuiltinUsedStacks) {\n const prettyError = await createErrorFromString(\n unsafeBuiltinUsedStack,\n `${htmlComponentRendererPath}.map`\n )\n\n const warningMessage = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n reporter.warn(warningMessage)\n }\n }\n}\n\nclass BuildHTMLError extends Error {\n codeFrame = ``\n context?: {\n path: string\n }\n\n constructor(error: Error) {\n super(error.message)\n\n // We must use getOwnProperty because keys like `stack` are not enumerable,\n // but we want to copy over the entire error\n Object.getOwnPropertyNames(error).forEach(key => {\n this[key] = error[key]\n })\n }\n}\n\nconst truncateObjStrings = (obj): IPageDataWithQueryResult => {\n // Recursively truncate strings nested in object\n // These objs can be quite large, but we want to preserve each field\n for (const key in obj) {\n if (typeof obj[key] === `object`) {\n truncateObjStrings(obj[key])\n } else if (typeof obj[key] === `string`) {\n obj[key] = truncate(obj[key], { length: 250 })\n }\n }\n\n return obj\n}\n\nexport const doBuildPages = async (\n rendererPath: string,\n pagePaths: Array<string>,\n activity: IActivity,\n workerPool: GatsbyWorkerPool,\n stage: Stage\n): Promise<void> => {\n try {\n await renderHTMLQueue(workerPool, activity, rendererPath, pagePaths, stage)\n } catch (error) {\n const prettyError = await createErrorFromString(\n error.stack,\n `${rendererPath}.map`\n )\n\n const buildError = new BuildHTMLError(prettyError)\n buildError.context = error.context\n\n if (error?.context?.path) {\n const pageData = await getPageData(error.context.path)\n const truncatedPageData = truncateObjStrings(pageData)\n\n const pageDataMessage = `Page data from page-data.json for the failed page \"${\n error.context.path\n }\": ${JSON.stringify(truncatedPageData, null, 2)}`\n\n // This is our only error during preview so customize it a bit + add the\n // pretty build error.\n if (isPreview) {\n reporter.error({\n id: `95314`,\n context: { pageData: pageDataMessage },\n error: buildError,\n })\n } else {\n reporter.error(pageDataMessage)\n }\n }\n\n // Don't crash the builder when we're in preview-mode.\n if (!isPreview) {\n throw buildError\n }\n }\n}\n\n// TODO remove in v4 - this could be a \"public\" api\nexport const buildHTML = async ({\n program,\n stage,\n pagePaths,\n activity,\n workerPool,\n}: {\n program: IProgram\n stage: Stage\n pagePaths: Array<string>\n activity: IActivity\n workerPool: GatsbyWorkerPool\n}): Promise<void> => {\n const { rendererPath } = await buildRenderer(program, stage, activity.span)\n await doBuildPages(rendererPath, pagePaths, activity, workerPool, stage)\n await deleteRenderer(rendererPath)\n}\n\nexport async function buildHTMLPagesAndDeleteStaleArtifacts({\n pageRenderer,\n workerPool,\n parentSpan,\n program,\n}: {\n pageRenderer: string\n workerPool: GatsbyWorkerPool\n parentSpan?: Span\n program: IBuildArgs\n}): Promise<{\n toRegenerate: Array<string>\n toDelete: Array<string>\n}> {\n buildUtils.markHtmlDirtyIfResultOfUsedStaticQueryChanged()\n\n const { toRegenerate, toDelete, toCleanupFromTrackedState } =\n buildUtils.calcDirtyHtmlFiles(store.getState())\n\n store.dispatch({\n type: `HTML_TRACKED_PAGES_CLEANUP`,\n payload: toCleanupFromTrackedState,\n })\n\n if (toRegenerate.length > 0) {\n const buildHTMLActivityProgress = reporter.createProgress(\n `Building static HTML for pages`,\n toRegenerate.length,\n 0,\n {\n parentSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await doBuildPages(\n pageRenderer,\n toRegenerate,\n buildHTMLActivityProgress,\n workerPool,\n Stage.BuildHTML\n )\n } catch (err) {\n let id = `95313` // TODO: verify error IDs exist\n const context = {\n errorPath: err.context && err.context.path,\n ref: ``,\n }\n\n const match = err.message.match(\n /ReferenceError: (window|document|localStorage|navigator|alert|location) is not defined/i\n )\n if (match && match[1]) {\n id = `95312`\n context.ref = match[1]\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n } else {\n reporter.info(`There are no new or changed html files to build.`)\n }\n\n // TODO move to per page builds in _routes directory\n if (!program.keepPageRenderer && _CFLAGS_.GATSBY_MAJOR !== `4`) {\n try {\n await deleteRenderer(pageRenderer)\n } catch (err) {\n // pass through\n }\n }\n\n if (toDelete.length > 0) {\n const publicDir = path.join(program.directory, `public`)\n const deletePageDataActivityTimer = reporter.activityTimer(\n `Delete previous page data`,\n { parentSpan }\n )\n deletePageDataActivityTimer.start()\n await buildUtils.removePageFiles(publicDir, toDelete)\n\n deletePageDataActivityTimer.end()\n }\n\n // we process node manifests in this location because we need to make sure all page-data.json files are written for gatsby as well as inc-builds (both call builHTMLPagesAndDeleteStaleArtifacts). Node manifests include a digest of the corresponding page-data.json file and at this point we can be sure page-data has been written out for the latest updates in gatsby build AND inc builds.\n await processNodeManifests()\n\n return { toRegenerate, toDelete }\n}\n"],"file":"build-html.js"}
@@ -68,7 +68,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
68
68
 
69
69
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
70
70
 
71
- module.exports = async function build(program) {
71
+ module.exports = async function build(program, externalTracerTags) {
72
72
  if ((0, _gatsbyCoreUtils.isTruthy)(process.env.VERBOSE)) {
73
73
  program.verbose = true;
74
74
  }
@@ -89,7 +89,9 @@ module.exports = async function build(program) {
89
89
 
90
90
  const publicDir = _path.default.join(program.directory, `public`);
91
91
 
92
- (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
92
+ if (!externalTracerTags) {
93
+ await (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
94
+ }
93
95
 
94
96
  const buildActivity = _reporter.default.phantomActivity(`build`);
95
97
 
@@ -103,7 +105,14 @@ module.exports = async function build(program) {
103
105
  });
104
106
  });
105
107
  const buildSpan = buildActivity.span;
106
- buildSpan.setTag(`directory`, program.directory);
108
+ buildSpan.setTag(`directory`, program.directory); // Add external tags to buildSpan
109
+
110
+ if (externalTracerTags) {
111
+ Object.entries(externalTracerTags).forEach(([key, value]) => {
112
+ buildActivity.span.setTag(key, value);
113
+ });
114
+ }
115
+
107
116
  const {
108
117
  gatsbyNodeGraphQLFunction,
109
118
  workerPool
@@ -135,12 +144,12 @@ module.exports = async function build(program) {
135
144
  const waitForWorkerPoolRestart = Promise.resolve();
136
145
 
137
146
  if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {
138
- await (0, _pool.runQueriesInWorkersQueue)(workerPool, queryIds); // Jobs still might be running even though query running finished
147
+ await (0, _pool.runQueriesInWorkersQueue)(workerPool, queryIds, 50, buildSpan); // Jobs still might be running even though query running finished
139
148
 
140
149
  await (0, _waitUntilJobsComplete.waitUntilAllJobsComplete)(); // Restart worker pool before merging state to lower memory pressure while merging state
141
150
  // waitForWorkerPoolRestart = workerPool.restart()
142
151
 
143
- await (0, _pool.mergeWorkerState)(workerPool);
152
+ await (0, _pool.mergeWorkerState)(workerPool, buildSpan);
144
153
  } else {
145
154
  await (0, _services.runStaticQueries)({
146
155
  queryIds,
@@ -315,7 +324,7 @@ module.exports = async function build(program) {
315
324
  program,
316
325
  pageRenderer,
317
326
  workerPool,
318
- buildSpan
327
+ parentSpan: buildSpan
319
328
  }); // const waitWorkerPoolEnd = Promise.all(workerPool.end())
320
329
 
321
330
  _gatsbyTelemetry.default.addSiteMeasurement(`BUILD_END`, {
@@ -349,10 +358,12 @@ module.exports = async function build(program) {
349
358
 
350
359
  _reporter.default.info(`Done building in ${process.uptime()} sec`);
351
360
 
352
- buildSpan.finish();
353
- await (0, _tracer.stopTracer)();
354
361
  buildActivity.end();
355
362
 
363
+ if (!externalTracerTags) {
364
+ await (0, _tracer.stopTracer)();
365
+ }
366
+
356
367
  if (program.logPages) {
357
368
  if (toRegenerate.length) {
358
369
  _reporter.default.info(`Built pages:\n${toRegenerate.map(path => `Updated page: ${path}`).join(`\n`)}`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/build.ts"],"names":["module","exports","build","program","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","directory","lastRun","Date","now","pid","publicDir","path","join","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","workerPool","parentSpan","engineBundlingPromises","push","graphqlRunner","GraphQLRunner","store","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","mode","waitForWorkerPoolRestart","Promise","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","graphql","buildActivityTimer","activityTimer","stats","waitForCompilerClose","result","hasWarnings","rawMessages","toJson","moduleTrace","warnings","err","panic","Stage","BuildJavascript","end","webpackCompilationHash","hash","getState","appDataUtil","exists","dispatch","type","payload","rewriteActivityTimer","write","isTrackingEnabled","bundleSizes","assets","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","buildSSRBundleActivityProgress","pageRenderer","waitForCompilerCloseBuildHtml","BuildHTML","rendererPath","outputDir","fs","ensureDir","then","copyFile","all","send","action","routesWebpackConfig","reject","compiler","run","close","error","undefined","keepPageRenderer","toRegenerate","toDelete","pagesCount","length","totalPagesCount","pages","postBuildActivityTimer","info","uptime","finish","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","writeFile"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\nimport { updateSiteMetadata, isTruthy } from \"gatsby-core-utils\"\nimport {\n buildRenderer,\n buildHTMLPagesAndDeleteStaleArtifacts,\n IBuildArgs,\n} from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport * as db from \"../redux/save-state\"\nimport { store } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport {\n structureWebpackErrors,\n reportWebpackWarnings,\n} from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { actions } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { Stage } from \"./types\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { showExperimentNotices } from \"../utils/show-experiment-notice\"\nimport {\n mergeWorkerState,\n runQueriesInWorkersQueue,\n} from \"../utils/worker/pool\"\nimport webpackConfig from \"../utils/webpack.config.js\"\nimport { webpack } from \"webpack\"\nimport { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport { createPageSSRBundle } from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, {\n exitCode: exitCode as number | undefined,\n })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction, workerPool } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n const engineBundlingPromises: Array<Promise<any>> = []\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // bundle graphql-engine\n engineBundlingPromises.push(createGraphqlEngineBundle())\n }\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n // Only run queries with mode SSG\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => query.mode === `SSG`\n )\n }\n\n const waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds)\n // Jobs still might be running even though query running finished\n await waitUntilAllJobsComplete()\n // Restart worker pool before merging state to lower memory pressure while merging state\n // waitForWorkerPoolRestart = workerPool.restart()\n await mergeWorkerState(workerPool)\n } else {\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n let stats\n let waitForCompilerClose\n try {\n const result = await buildProductionBundle(program, buildActivityTimer.span)\n stats = result.stats\n waitForCompilerClose = result.waitForCompilerClose\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ moduleTrace: false })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // client bundle is produced so static query maps should be ready\n engineBundlingPromises.push(createPageSSRBundle())\n }\n\n const webpackCompilationHash = stats.hash\n if (\n webpackCompilationHash !== store.getState().webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash)\n\n rewriteActivityTimer.end()\n }\n\n await flushPendingPageDataWrites(buildSpan)\n markWebpackStatusAsDone()\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = stats\n .toJson({ assets: true })\n .assets.filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n store.dispatch(actions.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`))\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n let pageRenderer = ``\n let waitForCompilerCloseBuildHtml\n try {\n const result = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n pageRenderer = result.rendererPath\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // for now copy page-render to `.cache` so page-ssr module can require it as a sibling module\n const outputDir = path.join(program.directory, `.cache`, `page-ssr`)\n engineBundlingPromises.push(\n fs\n .ensureDir(outputDir)\n .then(() =>\n fs.copyFile(\n result.rendererPath,\n path.join(outputDir, `render-page.js`)\n )\n )\n )\n }\n waitForCompilerCloseBuildHtml = result.waitForCompilerClose\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n Promise.all(engineBundlingPromises).then(() => {\n if (process.send) {\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n },\n })\n }\n })\n }\n\n // TODO Move to page-renderer\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n const routesWebpackConfig = await webpackConfig(\n program,\n program.directory,\n `build-ssr`,\n null,\n { parentSpan: buildSSRBundleActivityProgress.span }\n )\n\n await new Promise((resolve, reject) => {\n const compiler = webpack(routesWebpackConfig)\n compiler.run(err => {\n if (err) {\n return void reject(err)\n }\n\n compiler.close(error => {\n if (error) {\n return void reject(error)\n }\n return void resolve(undefined)\n })\n\n return undefined\n })\n })\n }\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // well, tbf we should just generate this in `.cache` and avoid deleting it :shrug:\n program.keepPageRenderer = true\n }\n\n await waitForWorkerPoolRestart\n\n const { toRegenerate, toDelete } =\n await buildHTMLPagesAndDeleteStaleArtifacts({\n program,\n pageRenderer,\n workerPool,\n buildSpan,\n })\n\n // const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: toRegenerate.length, // number of html files that will be written\n totalPagesCount: store.getState().pages.size, // total number of pages\n })\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: postBuildActivityTimer.span,\n })\n postBuildActivityTimer.end()\n\n // Wait for any jobs that were started in onPostBuild\n // This could occur due to queries being run which invoke sharp for instance\n await waitUntilAllJobsComplete()\n\n // try {\n // await waitWorkerPoolEnd\n // } catch (e) {\n // report.warn(`Error when closing WorkerPool: ${e.message}`)\n // }\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n await Promise.all([waitForCompilerClose, waitForCompilerCloseBuildHtml])\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n buildActivity.end()\n\n if (program.logPages) {\n if (toRegenerate.length) {\n report.info(\n `Built pages:\\n${toRegenerate\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (toDelete.length) {\n report.info(\n `Deleted pages:\\n${toDelete\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (program.writeToFile) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = toRegenerate.length\n ? `${toRegenerate.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = toDelete.length\n ? `${toDelete.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n await Promise.all(engineBundlingPromises)\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
1
+ {"version":3,"sources":["../../src/commands/build.ts"],"names":["module","exports","build","program","externalTracerTags","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","directory","lastRun","Date","now","pid","publicDir","path","join","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","Object","entries","forEach","key","value","gatsbyNodeGraphQLFunction","workerPool","parentSpan","engineBundlingPromises","push","graphqlRunner","GraphQLRunner","store","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","mode","waitForWorkerPoolRestart","Promise","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","graphql","buildActivityTimer","activityTimer","stats","waitForCompilerClose","result","hasWarnings","rawMessages","toJson","moduleTrace","warnings","err","panic","Stage","BuildJavascript","end","webpackCompilationHash","hash","getState","appDataUtil","exists","dispatch","type","payload","rewriteActivityTimer","write","isTrackingEnabled","bundleSizes","assets","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","buildSSRBundleActivityProgress","pageRenderer","waitForCompilerCloseBuildHtml","BuildHTML","rendererPath","outputDir","fs","ensureDir","then","copyFile","all","send","action","routesWebpackConfig","reject","compiler","run","close","error","undefined","keepPageRenderer","toRegenerate","toDelete","pagesCount","length","totalPagesCount","pages","postBuildActivityTimer","info","uptime","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","writeFile"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\nimport { updateSiteMetadata, isTruthy } from \"gatsby-core-utils\"\nimport {\n buildRenderer,\n buildHTMLPagesAndDeleteStaleArtifacts,\n IBuildArgs,\n} from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport * as db from \"../redux/save-state\"\nimport { store } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport {\n structureWebpackErrors,\n reportWebpackWarnings,\n} from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { actions } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { Stage } from \"./types\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { showExperimentNotices } from \"../utils/show-experiment-notice\"\nimport {\n mergeWorkerState,\n runQueriesInWorkersQueue,\n} from \"../utils/worker/pool\"\nimport webpackConfig from \"../utils/webpack.config.js\"\nimport { webpack } from \"webpack\"\nimport { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport { createPageSSRBundle } from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\n\nmodule.exports = async function build(\n program: IBuildArgs,\n externalTracerTags\n): Promise<void> {\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n if (!externalTracerTags) {\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE ||\n program.openTracingConfigFile\n )\n }\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, {\n exitCode: exitCode as number | undefined,\n })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n // Add external tags to buildSpan\n if (externalTracerTags) {\n Object.entries(externalTracerTags).forEach(([key, value]) => {\n buildActivity.span.setTag(key, value)\n })\n }\n\n const { gatsbyNodeGraphQLFunction, workerPool } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n const engineBundlingPromises: Array<Promise<any>> = []\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // bundle graphql-engine\n engineBundlingPromises.push(createGraphqlEngineBundle())\n }\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n // Only run queries with mode SSG\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => query.mode === `SSG`\n )\n }\n\n const waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds, 50, buildSpan)\n // Jobs still might be running even though query running finished\n await waitUntilAllJobsComplete()\n // Restart worker pool before merging state to lower memory pressure while merging state\n // waitForWorkerPoolRestart = workerPool.restart()\n await mergeWorkerState(workerPool, buildSpan)\n } else {\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n let stats\n let waitForCompilerClose\n try {\n const result = await buildProductionBundle(program, buildActivityTimer.span)\n stats = result.stats\n waitForCompilerClose = result.waitForCompilerClose\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ moduleTrace: false })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // client bundle is produced so static query maps should be ready\n engineBundlingPromises.push(createPageSSRBundle())\n }\n\n const webpackCompilationHash = stats.hash\n if (\n webpackCompilationHash !== store.getState().webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash)\n\n rewriteActivityTimer.end()\n }\n\n await flushPendingPageDataWrites(buildSpan)\n markWebpackStatusAsDone()\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = stats\n .toJson({ assets: true })\n .assets.filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n store.dispatch(actions.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`))\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n let pageRenderer = ``\n let waitForCompilerCloseBuildHtml\n try {\n const result = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n pageRenderer = result.rendererPath\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // for now copy page-render to `.cache` so page-ssr module can require it as a sibling module\n const outputDir = path.join(program.directory, `.cache`, `page-ssr`)\n engineBundlingPromises.push(\n fs\n .ensureDir(outputDir)\n .then(() =>\n fs.copyFile(\n result.rendererPath,\n path.join(outputDir, `render-page.js`)\n )\n )\n )\n }\n waitForCompilerCloseBuildHtml = result.waitForCompilerClose\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n Promise.all(engineBundlingPromises).then(() => {\n if (process.send) {\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n },\n })\n }\n })\n }\n\n // TODO Move to page-renderer\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n const routesWebpackConfig = await webpackConfig(\n program,\n program.directory,\n `build-ssr`,\n null,\n { parentSpan: buildSSRBundleActivityProgress.span }\n )\n\n await new Promise((resolve, reject) => {\n const compiler = webpack(routesWebpackConfig)\n compiler.run(err => {\n if (err) {\n return void reject(err)\n }\n\n compiler.close(error => {\n if (error) {\n return void reject(error)\n }\n return void resolve(undefined)\n })\n\n return undefined\n })\n })\n }\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // well, tbf we should just generate this in `.cache` and avoid deleting it :shrug:\n program.keepPageRenderer = true\n }\n\n await waitForWorkerPoolRestart\n\n const { toRegenerate, toDelete } =\n await buildHTMLPagesAndDeleteStaleArtifacts({\n program,\n pageRenderer,\n workerPool,\n parentSpan: buildSpan,\n })\n\n // const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: toRegenerate.length, // number of html files that will be written\n totalPagesCount: store.getState().pages.size, // total number of pages\n })\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: postBuildActivityTimer.span,\n })\n postBuildActivityTimer.end()\n\n // Wait for any jobs that were started in onPostBuild\n // This could occur due to queries being run which invoke sharp for instance\n await waitUntilAllJobsComplete()\n\n // try {\n // await waitWorkerPoolEnd\n // } catch (e) {\n // report.warn(`Error when closing WorkerPool: ${e.message}`)\n // }\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n await Promise.all([waitForCompilerClose, waitForCompilerCloseBuildHtml])\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildActivity.end()\n if (!externalTracerTags) {\n await stopTracer()\n }\n\n if (program.logPages) {\n if (toRegenerate.length) {\n report.info(\n `Built pages:\\n${toRegenerate\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (toDelete.length) {\n report.info(\n `Deleted pages:\\n${toDelete\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (program.writeToFile) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = toRegenerate.length\n ? `${toRegenerate.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = toDelete.length\n ? `${toDelete.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n await Promise.all(engineBundlingPromises)\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
@@ -25,6 +25,8 @@ var _errorParser = _interopRequireDefault(require("./error-parser"));
25
25
 
26
26
  var _pageData = require("../utils/page-data");
27
27
 
28
+ const sessionSalt = Math.random();
29
+
28
30
  const GatsbyCacheLmdbImpl = require(`../utils/cache-lmdb`).default;
29
31
 
30
32
  const resultHashCache = new GatsbyCacheLmdbImpl({
@@ -154,8 +156,8 @@ async function queryRunner(graphqlRunner, queryJob, parentSpan) {
154
156
 
155
157
  const resultHash = _crypto.default.createHash(`sha1`).update(resultJSON).digest(`base64`);
156
158
 
157
- if (resultHash !== (await resultHashCache.get(queryJob.id)) || queryJob.isPage && !(0, _pageData.pageDataExists)(_path.default.join(program.directory, `public`), queryJob.id)) {
158
- resultHashCache.set(queryJob.id, resultHash);
159
+ if (resultHash !== (await resultHashCache.get(queryJob.id + sessionSalt)) || queryJob.isPage && !(0, _pageData.pageDataExists)(_path.default.join(program.directory, `public`), queryJob.id)) {
160
+ resultHashCache.set(queryJob.id + sessionSalt, resultHash);
159
161
 
160
162
  if (queryJob.isPage) {
161
163
  // We need to save this temporarily in cache because
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query/query-runner.ts"],"names":["GatsbyCacheLmdbImpl","require","default","resultHashCache","name","encoding","init","reportLongRunningQueryJob","queryJob","messageParts","componentPath","isPage","path","context","push","_","isEmpty","JSON","stringify","report","warn","join","panicQueryJobError","errors","urlPath","undefined","queryContext","plugin","pluginCreatorId","structuredErrors","map","e","structuredError","message","filePath","location","error","codeFrame","query","locations","line","column","panicOnBuild","startQueryJob","graphqlRunner","parentSpan","isPending","timeoutId","setTimeout","queryName","id","finally","clearTimeout","queryRunner","program","store","getState","dispatch","actions","queryStart","result","Object","assign","pageContext","internalComponentName","component","componentChunkName","updatedAt","pluginCreator___NODE","isCreatedByStatefulCreatePages","matchPath","mode","resultJSON","resultHash","crypto","createHash","update","digest","get","directory","set","type","payload","resultPath","hash","fs","outputFile","pageQueryRun","queryHash"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AAEA,MAAMA,mBAAmB,GAAGC,OAAO,CAAE,qBAAF,CAAP,CAA+BC,OAA3D;;AACA,MAAMC,eAAe,GAAG,IAAIH,mBAAJ,CAAwB;AAC9CI,EAAAA,IAAI,EAAG,qBADuC;AAE9CC,EAAAA,QAAQ,EAAG;AAFmC,CAAxB,EAGrBC,IAHqB,EAAxB;;AAeA,SAASC,yBAAT,CAAmCC,QAAnC,EAAmD;AACjD,QAAMC,YAAY,GAAG,CAClB,uBADkB,EAElB,cAAaD,QAAQ,CAACE,aAAc,EAFlB,CAArB;;AAKA,MAAIF,QAAQ,CAACG,MAAb,EAAqB;AACnB,UAAM;AAAEC,MAAAA,IAAF;AAAQC,MAAAA;AAAR,QAAoBL,QAAQ,CAACK,OAAnC;AACAJ,IAAAA,YAAY,CAACK,IAAb,CAAmB,aAAYF,IAAK,EAApC;;AAEA,QAAI,CAACG,gBAAEC,OAAF,CAAUH,OAAV,CAAL,EAAyB;AACvBJ,MAAAA,YAAY,CAACK,IAAb,CAAmB,YAAWG,IAAI,CAACC,SAAL,CAAeL,OAAf,EAAwB,IAAxB,EAA8B,CAA9B,CAAiC,EAA/D;AACD;AACF;;AAEDM,oBAAOC,IAAP,CAAYX,YAAY,CAACY,IAAb,CAAmB,IAAnB,CAAZ;AACD;;AAED,SAASC,kBAAT,CACEd,QADF,EAEEe,MAFF,EAGQ;AACN,MAAIC,OAAO,GAAGC,SAAd;AACA,MAAIC,YAAY,GAAG,EAAnB;AACA,QAAMC,MAAM,GAAGnB,QAAQ,CAACoB,eAAT,IAA6B,MAA5C;;AAEA,MAAIpB,QAAQ,CAACG,MAAb,EAAqB;AACnBa,IAAAA,OAAO,GAAGhB,QAAQ,CAACK,OAAT,CAAiBD,IAA3B;AACAc,IAAAA,YAAY,GAAGlB,QAAQ,CAACK,OAAT,CAAiBA,OAAhC;AACD;;AAED,QAAMgB,gBAAgB,GAAGN,MAAM,CAACO,GAAP,CAAWC,CAAC,IAAI;AACvC,UAAMC,eAAe,GAAG,0BAAY;AAClCC,MAAAA,OAAO,EAAEF,CAAC,CAACE,OADuB;AAElCC,MAAAA,QAAQ,EAAET,SAFwB;AAGlCU,MAAAA,QAAQ,EAAEV,SAHwB;AAIlCW,MAAAA,KAAK,EAAEL;AAJ2B,KAAZ,CAAxB;AAOAC,IAAAA,eAAe,CAACnB,OAAhB,GAA0B,EACxB,GAAGmB,eAAe,CAACnB,OADK;AAExBwB,MAAAA,SAAS,EAAE,iCACT7B,QAAQ,CAAC8B,KADA,EAETP,CAAC,CAACQ,SAAF,IAAeR,CAAC,CAACQ,SAAF,CAAY,CAAZ,EAAeC,IAFrB,EAGTT,CAAC,CAACQ,SAAF,IAAeR,CAAC,CAACQ,SAAF,CAAY,CAAZ,EAAeE,MAHrB,CAFa;AAOxBP,MAAAA,QAAQ,EAAE1B,QAAQ,CAACE,aAPK;AAQxB,UAAIc,OAAO,GAAG;AAAEA,QAAAA;AAAF,OAAH,GAAiB,EAA5B,CARwB;AASxB,SAAGE,YATqB;AAUxBC,MAAAA;AAVwB,KAA1B;AAaA,WAAOK,eAAP;AACD,GAtBwB,CAAzB;;AAwBAb,oBAAOuB,YAAP,CAAoBb,gBAApB;AACD;;AAED,eAAec,aAAf,CACEC,aADF,EAEEpC,QAFF,EAGEqC,UAHF,EAI4B;AAC1B,MAAIC,SAAS,GAAG,IAAhB,CAD0B,CAG1B;;AACA,QAAMC,SAAS,GAAGC,UAAU,CAAC,MAAM;AACjC,QAAIF,SAAJ,EAAe;AACbvC,MAAAA,yBAAyB,CAACC,QAAD,CAAzB;AACD;AACF,GAJ2B,EAIzB,KAJyB,CAA5B;AAMA,SAAOoC,aAAa,CACjBN,KADI,CACE9B,QAAQ,CAAC8B,KADX,EACkB9B,QAAQ,CAACK,OAD3B,EACoC;AACvCgC,IAAAA,UADuC;AAEvCI,IAAAA,SAAS,EAAEzC,QAAQ,CAAC0C,EAFmB;AAGvCxC,IAAAA,aAAa,EAAEF,QAAQ,CAACE;AAHe,GADpC,EAMJyC,OANI,CAMI,MAAM;AACbL,IAAAA,SAAS,GAAG,KAAZ;AACAM,IAAAA,YAAY,CAACL,SAAD,CAAZ;AACD,GATI,CAAP;AAUD;;AAEM,eAAeM,WAAf,CACLT,aADK,EAELpC,QAFK,EAGLqC,UAHK,EAIsB;AAC3B,QAAM;AAAES,IAAAA;AAAF,MAAcC,aAAMC,QAAN,EAApB;;AAEAD,eAAME,QAAN,CACEC,iBAAQC,UAAR,CAAmB;AACjB/C,IAAAA,IAAI,EAAEJ,QAAQ,CAAC0C,EADE;AAEjBxC,IAAAA,aAAa,EAAEF,QAAQ,CAACE,aAFP;AAGjBC,IAAAA,MAAM,EAAEH,QAAQ,CAACG;AAHA,GAAnB,CADF,EAH2B,CAW3B;;;AACA,MAAIiD,MAAJ,CAZ2B,CAa3B;;AACA,MAAI,CAACpD,QAAQ,CAAC8B,KAAV,IAAmB9B,QAAQ,CAAC8B,KAAT,KAAoB,EAA3C,EAA8C;AAC5CsB,IAAAA,MAAM,GAAG,EAAT;AACD,GAFD,MAEO;AACLA,IAAAA,MAAM,GAAG,MAAMjB,aAAa,CAACC,aAAD,EAAgBpC,QAAhB,EAA0BqC,UAA1B,CAA5B;AACD;;AAED,MAAIe,MAAM,CAACrC,MAAX,EAAmB;AACjB;AACAD,IAAAA,kBAAkB,CAACd,QAAD,EAAWoD,MAAM,CAACrC,MAAlB,CAAlB;AACD,GAvB0B,CAyB3B;;;AACA,MAAIf,QAAQ,IAAIA,QAAQ,CAACG,MAAzB,EAAiC;AAC/BiD,IAAAA,MAAM,CAAE,aAAF,CAAN,GAAwBC,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBtD,QAAQ,CAACK,OAA3B,CAAxB;AACD,GA5B0B,CA8B3B;;;AACA,MAAI+C,MAAM,CAACG,WAAX,EAAwB;AACtB,WAAOH,MAAM,CAACG,WAAP,CAAmBnD,IAA1B;AACA,WAAOgD,MAAM,CAACG,WAAP,CAAmBC,qBAA1B;AACA,WAAOJ,MAAM,CAACG,WAAP,CAAmBE,SAA1B;AACA,WAAOL,MAAM,CAACG,WAAP,CAAmBG,kBAA1B;AACA,WAAON,MAAM,CAACG,WAAP,CAAmBI,SAA1B;AACA,WAAOP,MAAM,CAACG,WAAP,CAAmBK,oBAA1B;AACA,WAAOR,MAAM,CAACG,WAAP,CAAmBnC,eAA1B;AACA,WAAOgC,MAAM,CAACG,WAAP,CAAmBrD,aAA1B;AACA,WAAOkD,MAAM,CAACG,WAAP,CAAmBlD,OAA1B;AACA,WAAO+C,MAAM,CAACG,WAAP,CAAmBM,8BAA1B;;AAEA,QAAI,OAA2B,GAA/B,EAAmC;AACjC;AACA,aAAOT,MAAM,CAACG,WAAP,CAAmBO,SAA1B;AACA,aAAOV,MAAM,CAACG,WAAP,CAAmBQ,IAA1B;AACD;AACF;;AAED,QAAMC,UAAU,GAAGvD,IAAI,CAACC,SAAL,CAAe0C,MAAf,CAAnB;;AACA,QAAMa,UAAU,GAAGC,gBAChBC,UADgB,CACJ,MADI,EAEhBC,MAFgB,CAETJ,UAFS,EAGhBK,MAHgB,CAGR,QAHQ,CAAnB;;AAKA,MACEJ,UAAU,MAAM,MAAMtE,eAAe,CAAC2E,GAAhB,CAAoBtE,QAAQ,CAAC0C,EAA7B,CAAZ,CAAV,IACC1C,QAAQ,CAACG,MAAT,IACC,CAAC,8BAAeC,cAAKS,IAAL,CAAUiC,OAAO,CAACyB,SAAlB,EAA8B,QAA9B,CAAf,EAAuDvE,QAAQ,CAAC0C,EAAhE,CAHL,EAIE;AACA/C,IAAAA,eAAe,CAAC6E,GAAhB,CAAoBxE,QAAQ,CAAC0C,EAA7B,EAAiCuB,UAAjC;;AAEA,QAAIjE,QAAQ,CAACG,MAAb,EAAqB;AACnB;AACA;AACA,YAAM,mCAAoB2C,OAAO,CAACyB,SAA5B,EAAuCvE,QAAQ,CAAC0C,EAAhD,EAAoDsB,UAApD,CAAN;;AACAjB,mBAAME,QAAN,CAAe;AACbwB,QAAAA,IAAI,EAAG,6BADM;AAEbC,QAAAA,OAAO,EAAE;AACPtE,UAAAA,IAAI,EAAEJ,QAAQ,CAAC0C;AADR;AAFI,OAAf;AAMD,KAVD,MAUO;AACL,YAAMiC,UAAU,GAAGvE,cAAKS,IAAL,CACjBiC,OAAO,CAACyB,SADS,EAEhB,QAFgB,EAGhB,WAHgB,EAIhB,IAJgB,EAKhB,GALgB,EAMhB,GAAEvE,QAAQ,CAAC4E,IAAK,OANA,CAAnB;;AAQA,YAAMC,iBAAGC,UAAH,CAAcH,UAAd,EAA0BX,UAA1B,CAAN;AACD;AACF,GApF0B,CAsF3B;;;AACAjB,eAAME,QAAN,CACEC,iBAAQ6B,YAAR,CAAqB;AACnB3E,IAAAA,IAAI,EAAEJ,QAAQ,CAAC0C,EADI;AAEnBxC,IAAAA,aAAa,EAAEF,QAAQ,CAACE,aAFL;AAGnBC,IAAAA,MAAM,EAAEH,QAAQ,CAACG,MAHE;AAInB8D,IAAAA,UAJmB;AAKnBe,IAAAA,SAAS,EAAEhF,QAAQ,CAAC4E;AALD,GAArB,CADF;;AAUA,SAAOxB,MAAP;AACD","sourcesContent":["import { Span } from \"opentracing\"\nimport _ from \"lodash\"\nimport fs from \"fs-extra\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport crypto from \"crypto\"\nimport { ExecutionResult, GraphQLError } from \"graphql\"\n\nimport path from \"path\"\nimport { store } from \"../redux\"\nimport { actions } from \"../redux/actions\"\nimport { getCodeFrame } from \"./graphql-errors\"\nimport errorParser from \"./error-parser\"\n\nimport { GraphQLRunner } from \"./graphql-runner\"\nimport { IExecutionResult, PageContext } from \"./types\"\nimport { pageDataExists, savePageQueryResult } from \"../utils/page-data\"\n\nconst GatsbyCacheLmdbImpl = require(`../utils/cache-lmdb`).default\nconst resultHashCache = new GatsbyCacheLmdbImpl({\n name: `query-result-hashes`,\n encoding: `string`,\n}).init()\n\nexport interface IQueryJob {\n id: string\n hash?: string\n query: string\n componentPath: string\n context: PageContext\n isPage: boolean\n pluginCreatorId?: string\n}\n\nfunction reportLongRunningQueryJob(queryJob): void {\n const messageParts = [\n `Query takes too long:`,\n `File path: ${queryJob.componentPath}`,\n ]\n\n if (queryJob.isPage) {\n const { path, context } = queryJob.context\n messageParts.push(`URL path: ${path}`)\n\n if (!_.isEmpty(context)) {\n messageParts.push(`Context: ${JSON.stringify(context, null, 4)}`)\n }\n }\n\n report.warn(messageParts.join(`\\n`))\n}\n\nfunction panicQueryJobError(\n queryJob: IQueryJob,\n errors: ReadonlyArray<GraphQLError>\n): void {\n let urlPath = undefined\n let queryContext = {}\n const plugin = queryJob.pluginCreatorId || `none`\n\n if (queryJob.isPage) {\n urlPath = queryJob.context.path\n queryContext = queryJob.context.context\n }\n\n const structuredErrors = errors.map(e => {\n const structuredError = errorParser({\n message: e.message,\n filePath: undefined,\n location: undefined,\n error: e,\n })\n\n structuredError.context = {\n ...structuredError.context,\n codeFrame: getCodeFrame(\n queryJob.query,\n e.locations && e.locations[0].line,\n e.locations && e.locations[0].column\n ),\n filePath: queryJob.componentPath,\n ...(urlPath ? { urlPath } : {}),\n ...queryContext,\n plugin,\n }\n\n return structuredError\n })\n\n report.panicOnBuild(structuredErrors)\n}\n\nasync function startQueryJob(\n graphqlRunner: GraphQLRunner,\n queryJob: IQueryJob,\n parentSpan: Span | undefined\n): Promise<ExecutionResult> {\n let isPending = true\n\n // Print out warning when query takes too long\n const timeoutId = setTimeout(() => {\n if (isPending) {\n reportLongRunningQueryJob(queryJob)\n }\n }, 15000)\n\n return graphqlRunner\n .query(queryJob.query, queryJob.context, {\n parentSpan,\n queryName: queryJob.id,\n componentPath: queryJob.componentPath,\n })\n .finally(() => {\n isPending = false\n clearTimeout(timeoutId)\n })\n}\n\nexport async function queryRunner(\n graphqlRunner: GraphQLRunner,\n queryJob: IQueryJob,\n parentSpan: Span | undefined\n): Promise<IExecutionResult> {\n const { program } = store.getState()\n\n store.dispatch(\n actions.queryStart({\n path: queryJob.id,\n componentPath: queryJob.componentPath,\n isPage: queryJob.isPage,\n })\n )\n\n // Run query\n let result: IExecutionResult\n // Nothing to do if the query doesn't exist.\n if (!queryJob.query || queryJob.query === ``) {\n result = {}\n } else {\n result = await startQueryJob(graphqlRunner, queryJob, parentSpan)\n }\n\n if (result.errors) {\n // If there's a graphql error then log the error and exit\n panicQueryJobError(queryJob, result.errors)\n }\n\n // Add the page context onto the results.\n if (queryJob && queryJob.isPage) {\n result[`pageContext`] = Object.assign({}, queryJob.context)\n }\n\n // Delete internal data from pageContext\n if (result.pageContext) {\n delete result.pageContext.path\n delete result.pageContext.internalComponentName\n delete result.pageContext.component\n delete result.pageContext.componentChunkName\n delete result.pageContext.updatedAt\n delete result.pageContext.pluginCreator___NODE\n delete result.pageContext.pluginCreatorId\n delete result.pageContext.componentPath\n delete result.pageContext.context\n delete result.pageContext.isCreatedByStatefulCreatePages\n\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n // we shouldn't add matchPath to pageContext but technically this is a breaking change so moving it ot v4\n delete result.pageContext.matchPath\n delete result.pageContext.mode\n }\n }\n\n const resultJSON = JSON.stringify(result)\n const resultHash = crypto\n .createHash(`sha1`)\n .update(resultJSON)\n .digest(`base64`)\n\n if (\n resultHash !== (await resultHashCache.get(queryJob.id)) ||\n (queryJob.isPage &&\n !pageDataExists(path.join(program.directory, `public`), queryJob.id))\n ) {\n resultHashCache.set(queryJob.id, resultHash)\n\n if (queryJob.isPage) {\n // We need to save this temporarily in cache because\n // this might be incomplete at the moment\n await savePageQueryResult(program.directory, queryJob.id, resultJSON)\n store.dispatch({\n type: `ADD_PENDING_PAGE_DATA_WRITE`,\n payload: {\n path: queryJob.id,\n },\n })\n } else {\n const resultPath = path.join(\n program.directory,\n `public`,\n `page-data`,\n `sq`,\n `d`,\n `${queryJob.hash}.json`\n )\n await fs.outputFile(resultPath, resultJSON)\n }\n }\n\n // Broadcast that a page's query has run.\n store.dispatch(\n actions.pageQueryRun({\n path: queryJob.id,\n componentPath: queryJob.componentPath,\n isPage: queryJob.isPage,\n resultHash,\n queryHash: queryJob.hash,\n })\n )\n\n return result\n}\n"],"file":"query-runner.js"}
1
+ {"version":3,"sources":["../../src/query/query-runner.ts"],"names":["sessionSalt","Math","random","GatsbyCacheLmdbImpl","require","default","resultHashCache","name","encoding","init","reportLongRunningQueryJob","queryJob","messageParts","componentPath","isPage","path","context","push","_","isEmpty","JSON","stringify","report","warn","join","panicQueryJobError","errors","urlPath","undefined","queryContext","plugin","pluginCreatorId","structuredErrors","map","e","structuredError","message","filePath","location","error","codeFrame","query","locations","line","column","panicOnBuild","startQueryJob","graphqlRunner","parentSpan","isPending","timeoutId","setTimeout","queryName","id","finally","clearTimeout","queryRunner","program","store","getState","dispatch","actions","queryStart","result","Object","assign","pageContext","internalComponentName","component","componentChunkName","updatedAt","pluginCreator___NODE","isCreatedByStatefulCreatePages","matchPath","mode","resultJSON","resultHash","crypto","createHash","update","digest","get","directory","set","type","payload","resultPath","hash","fs","outputFile","pageQueryRun","queryHash"],"mappings":"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","sourcesContent":["import { Span } from \"opentracing\"\nimport _ from \"lodash\"\nimport fs from \"fs-extra\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport crypto from \"crypto\"\nimport { ExecutionResult, GraphQLError } from \"graphql\"\n\nimport path from \"path\"\nimport { store } from \"../redux\"\nimport { actions } from \"../redux/actions\"\nimport { getCodeFrame } from \"./graphql-errors\"\nimport errorParser from \"./error-parser\"\n\nimport { GraphQLRunner } from \"./graphql-runner\"\nimport { IExecutionResult, PageContext } from \"./types\"\nimport { pageDataExists, savePageQueryResult } from \"../utils/page-data\"\n\nconst sessionSalt = Math.random()\n\nconst GatsbyCacheLmdbImpl = require(`../utils/cache-lmdb`).default\nconst resultHashCache = new GatsbyCacheLmdbImpl({\n name: `query-result-hashes`,\n encoding: `string`,\n}).init()\n\nexport interface IQueryJob {\n id: string\n hash?: string\n query: string\n componentPath: string\n context: PageContext\n isPage: boolean\n pluginCreatorId?: string\n}\n\nfunction reportLongRunningQueryJob(queryJob): void {\n const messageParts = [\n `Query takes too long:`,\n `File path: ${queryJob.componentPath}`,\n ]\n\n if (queryJob.isPage) {\n const { path, context } = queryJob.context\n messageParts.push(`URL path: ${path}`)\n\n if (!_.isEmpty(context)) {\n messageParts.push(`Context: ${JSON.stringify(context, null, 4)}`)\n }\n }\n\n report.warn(messageParts.join(`\\n`))\n}\n\nfunction panicQueryJobError(\n queryJob: IQueryJob,\n errors: ReadonlyArray<GraphQLError>\n): void {\n let urlPath = undefined\n let queryContext = {}\n const plugin = queryJob.pluginCreatorId || `none`\n\n if (queryJob.isPage) {\n urlPath = queryJob.context.path\n queryContext = queryJob.context.context\n }\n\n const structuredErrors = errors.map(e => {\n const structuredError = errorParser({\n message: e.message,\n filePath: undefined,\n location: undefined,\n error: e,\n })\n\n structuredError.context = {\n ...structuredError.context,\n codeFrame: getCodeFrame(\n queryJob.query,\n e.locations && e.locations[0].line,\n e.locations && e.locations[0].column\n ),\n filePath: queryJob.componentPath,\n ...(urlPath ? { urlPath } : {}),\n ...queryContext,\n plugin,\n }\n\n return structuredError\n })\n\n report.panicOnBuild(structuredErrors)\n}\n\nasync function startQueryJob(\n graphqlRunner: GraphQLRunner,\n queryJob: IQueryJob,\n parentSpan: Span | undefined\n): Promise<ExecutionResult> {\n let isPending = true\n\n // Print out warning when query takes too long\n const timeoutId = setTimeout(() => {\n if (isPending) {\n reportLongRunningQueryJob(queryJob)\n }\n }, 15000)\n\n return graphqlRunner\n .query(queryJob.query, queryJob.context, {\n parentSpan,\n queryName: queryJob.id,\n componentPath: queryJob.componentPath,\n })\n .finally(() => {\n isPending = false\n clearTimeout(timeoutId)\n })\n}\n\nexport async function queryRunner(\n graphqlRunner: GraphQLRunner,\n queryJob: IQueryJob,\n parentSpan: Span | undefined\n): Promise<IExecutionResult> {\n const { program } = store.getState()\n\n store.dispatch(\n actions.queryStart({\n path: queryJob.id,\n componentPath: queryJob.componentPath,\n isPage: queryJob.isPage,\n })\n )\n\n // Run query\n let result: IExecutionResult\n // Nothing to do if the query doesn't exist.\n if (!queryJob.query || queryJob.query === ``) {\n result = {}\n } else {\n result = await startQueryJob(graphqlRunner, queryJob, parentSpan)\n }\n\n if (result.errors) {\n // If there's a graphql error then log the error and exit\n panicQueryJobError(queryJob, result.errors)\n }\n\n // Add the page context onto the results.\n if (queryJob && queryJob.isPage) {\n result[`pageContext`] = Object.assign({}, queryJob.context)\n }\n\n // Delete internal data from pageContext\n if (result.pageContext) {\n delete result.pageContext.path\n delete result.pageContext.internalComponentName\n delete result.pageContext.component\n delete result.pageContext.componentChunkName\n delete result.pageContext.updatedAt\n delete result.pageContext.pluginCreator___NODE\n delete result.pageContext.pluginCreatorId\n delete result.pageContext.componentPath\n delete result.pageContext.context\n delete result.pageContext.isCreatedByStatefulCreatePages\n\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n // we shouldn't add matchPath to pageContext but technically this is a breaking change so moving it ot v4\n delete result.pageContext.matchPath\n delete result.pageContext.mode\n }\n }\n\n const resultJSON = JSON.stringify(result)\n const resultHash = crypto\n .createHash(`sha1`)\n .update(resultJSON)\n .digest(`base64`)\n\n if (\n resultHash !== (await resultHashCache.get(queryJob.id + sessionSalt)) ||\n (queryJob.isPage &&\n !pageDataExists(path.join(program.directory, `public`), queryJob.id))\n ) {\n resultHashCache.set(queryJob.id + sessionSalt, resultHash)\n\n if (queryJob.isPage) {\n // We need to save this temporarily in cache because\n // this might be incomplete at the moment\n await savePageQueryResult(program.directory, queryJob.id, resultJSON)\n store.dispatch({\n type: `ADD_PENDING_PAGE_DATA_WRITE`,\n payload: {\n path: queryJob.id,\n },\n })\n } else {\n const resultPath = path.join(\n program.directory,\n `public`,\n `page-data`,\n `sq`,\n `d`,\n `${queryJob.hash}.json`\n )\n await fs.outputFile(resultPath, resultJSON)\n }\n }\n\n // Broadcast that a page's query has run.\n store.dispatch(\n actions.pageQueryRun({\n path: queryJob.id,\n componentPath: queryJob.componentPath,\n isPage: queryJob.isPage,\n resultHash,\n queryHash: queryJob.hash,\n })\n )\n\n return result\n}\n"],"file":"query-runner.js"}
@@ -45,8 +45,13 @@ const componentsReducer = (state = new Map(), action) => {
45
45
  {
46
46
  action.payload.componentPath = (0, _normalizePath.default)(action.payload.componentPath);
47
47
  const component = state.get(action.payload.componentPath);
48
- component.query = action.payload.query;
49
- state.set(action.payload.componentPath, component);
48
+ console.log(`QUERY_EXTRACTED`, component, action);
49
+
50
+ if (component) {
51
+ component.query = action.payload.query;
52
+ state.set(action.payload.componentPath, component);
53
+ }
54
+
50
55
  return state;
51
56
  }
52
57
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/redux/reducers/components.ts"],"names":["programStatus","componentsReducer","state","Map","action","type","payload","componentPath","component","get","componentChunkName","query","pages","Set","isInBootstrap","add","path","set","delete"],"mappings":";;;;;;;AAAA;;AAGA,IAAIA,aAAa,GAAI,eAArB,C,CAEA;AACA;;AACO,MAAMC,iBAAiB,GAAG,CAC/BC,KAAiC,GAAG,IAAIC,GAAJ,EADL,EAE/BC,MAF+B,KAGA;AAC/B,UAAQA,MAAM,CAACC,IAAf;AACE,SAAM,cAAN;AACE,aAAO,IAAIF,GAAJ,EAAP;;AACF,SAAM,oBAAN;AACEH,MAAAA,aAAa,GAAGI,MAAM,CAACE,OAAvB;AACA,aAAOJ,KAAP;;AACF,SAAM,aAAN;AAAoB;AAClBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAA/B,CADkB,CAElB;;AACA,YAAIA,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAhB;;AACA,YAAI,CAACC,SAAL,EAAgB;AACdA,UAAAA,SAAS,GAAG;AACVD,YAAAA,aAAa,EAAEH,MAAM,CAACE,OAAP,CAAeC,aADpB;AAEVG,YAAAA,kBAAkB,EAAEN,MAAM,CAACE,OAAP,CAAeI,kBAFzB;AAGVC,YAAAA,KAAK,EAAG,EAHE;AAIVC,YAAAA,KAAK,EAAE,IAAIC,GAAJ,EAJG;AAKVC,YAAAA,aAAa,EAAE;AALL,WAAZ;AAOD;;AACDN,QAAAA,SAAS,CAACI,KAAV,CAAgBG,GAAhB,CAAoBX,MAAM,CAACE,OAAP,CAAeU,IAAnC;AACAR,QAAAA,SAAS,CAACM,aAAV,GAA0Bd,aAAa,KAAM,eAA7C;AACAE,QAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACA,eAAON,KAAP;AACD;;AACD,SAAM,iBAAN;AAAwB;AACtBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACA,cAAMC,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAlB;AACAC,QAAAA,SAAS,CAACG,KAAV,GAAkBP,MAAM,CAACE,OAAP,CAAeK,KAAjC;AACAT,QAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACA,eAAON,KAAP;AACD;;AACD,SAAM,mCAAN;AAA0C;AACxCE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACAL,QAAAA,KAAK,CAACgB,MAAN,CAAad,MAAM,CAACE,OAAP,CAAeC,aAA5B;AACA,eAAOL,KAAP;AACD;;AACD,SAAM,aAAN;AAAoB;AAClB,cAAMM,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAU,4BAAUL,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAAV,CAAlB;AACAA,QAAAA,SAAS,CAACI,KAAV,CAAgBM,MAAhB,CAAuBd,MAAM,CAACE,OAAP,CAAeU,IAAtC;AACA,eAAOd,KAAP;AACD;AAxCH;;AA2CA,SAAOA,KAAP;AACD,CAhDM","sourcesContent":["import normalize from \"./normalize-path\"\nimport { IGatsbyState, ActionsUnion } from \"../types\"\n\nlet programStatus = `BOOTSTRAPPING`\n\n// TODO: replace usages of this reducer with queries.trackedComponents\n// It is here merely for compatibility.\nexport const componentsReducer = (\n state: IGatsbyState[\"components\"] = new Map(),\n action: ActionsUnion\n): IGatsbyState[\"components\"] => {\n switch (action.type) {\n case `DELETE_CACHE`:\n return new Map()\n case `SET_PROGRAM_STATUS`:\n programStatus = action.payload\n return state\n case `CREATE_PAGE`: {\n action.payload.componentPath = normalize(action.payload.component)\n // Create XState service.\n let component = state.get(action.payload.componentPath)\n if (!component) {\n component = {\n componentPath: action.payload.componentPath,\n componentChunkName: action.payload.componentChunkName,\n query: ``,\n pages: new Set(),\n isInBootstrap: true,\n }\n }\n component.pages.add(action.payload.path)\n component.isInBootstrap = programStatus === `BOOTSTRAPPING`\n state.set(action.payload.componentPath, component)\n return state\n }\n case `QUERY_EXTRACTED`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n const component = state.get(action.payload.componentPath)!\n component.query = action.payload.query\n state.set(action.payload.componentPath, component)\n return state\n }\n case `REMOVE_STATIC_QUERIES_BY_TEMPLATE`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n state.delete(action.payload.componentPath)\n return state\n }\n case `DELETE_PAGE`: {\n const component = state.get(normalize(action.payload.component))!\n component.pages.delete(action.payload.path)\n return state\n }\n }\n\n return state\n}\n"],"file":"components.js"}
1
+ {"version":3,"sources":["../../../src/redux/reducers/components.ts"],"names":["programStatus","componentsReducer","state","Map","action","type","payload","componentPath","component","get","componentChunkName","query","pages","Set","isInBootstrap","add","path","set","console","log","delete"],"mappings":";;;;;;;AAAA;;AAGA,IAAIA,aAAa,GAAI,eAArB,C,CAEA;AACA;;AACO,MAAMC,iBAAiB,GAAG,CAC/BC,KAAiC,GAAG,IAAIC,GAAJ,EADL,EAE/BC,MAF+B,KAGA;AAC/B,UAAQA,MAAM,CAACC,IAAf;AACE,SAAM,cAAN;AACE,aAAO,IAAIF,GAAJ,EAAP;;AACF,SAAM,oBAAN;AACEH,MAAAA,aAAa,GAAGI,MAAM,CAACE,OAAvB;AACA,aAAOJ,KAAP;;AACF,SAAM,aAAN;AAAoB;AAClBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAA/B,CADkB,CAElB;;AACA,YAAIA,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAhB;;AACA,YAAI,CAACC,SAAL,EAAgB;AACdA,UAAAA,SAAS,GAAG;AACVD,YAAAA,aAAa,EAAEH,MAAM,CAACE,OAAP,CAAeC,aADpB;AAEVG,YAAAA,kBAAkB,EAAEN,MAAM,CAACE,OAAP,CAAeI,kBAFzB;AAGVC,YAAAA,KAAK,EAAG,EAHE;AAIVC,YAAAA,KAAK,EAAE,IAAIC,GAAJ,EAJG;AAKVC,YAAAA,aAAa,EAAE;AALL,WAAZ;AAOD;;AACDN,QAAAA,SAAS,CAACI,KAAV,CAAgBG,GAAhB,CAAoBX,MAAM,CAACE,OAAP,CAAeU,IAAnC;AACAR,QAAAA,SAAS,CAACM,aAAV,GAA0Bd,aAAa,KAAM,eAA7C;AACAE,QAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACA,eAAON,KAAP;AACD;;AACD,SAAM,iBAAN;AAAwB;AACtBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACA,cAAMC,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAlB;AAEAW,QAAAA,OAAO,CAACC,GAAR,CAAa,iBAAb,EAA+BX,SAA/B,EAA0CJ,MAA1C;;AAEA,YAAII,SAAJ,EAAe;AACbA,UAAAA,SAAS,CAACG,KAAV,GAAkBP,MAAM,CAACE,OAAP,CAAeK,KAAjC;AACAT,UAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACD;;AACD,eAAON,KAAP;AACD;;AACD,SAAM,mCAAN;AAA0C;AACxCE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACAL,QAAAA,KAAK,CAACkB,MAAN,CAAahB,MAAM,CAACE,OAAP,CAAeC,aAA5B;AACA,eAAOL,KAAP;AACD;;AACD,SAAM,aAAN;AAAoB;AAClB,cAAMM,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAU,4BAAUL,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAAV,CAAlB;AACAA,QAAAA,SAAS,CAACI,KAAV,CAAgBQ,MAAhB,CAAuBhB,MAAM,CAACE,OAAP,CAAeU,IAAtC;AACA,eAAOd,KAAP;AACD;AA7CH;;AAgDA,SAAOA,KAAP;AACD,CArDM","sourcesContent":["import normalize from \"./normalize-path\"\nimport { IGatsbyState, ActionsUnion } from \"../types\"\n\nlet programStatus = `BOOTSTRAPPING`\n\n// TODO: replace usages of this reducer with queries.trackedComponents\n// It is here merely for compatibility.\nexport const componentsReducer = (\n state: IGatsbyState[\"components\"] = new Map(),\n action: ActionsUnion\n): IGatsbyState[\"components\"] => {\n switch (action.type) {\n case `DELETE_CACHE`:\n return new Map()\n case `SET_PROGRAM_STATUS`:\n programStatus = action.payload\n return state\n case `CREATE_PAGE`: {\n action.payload.componentPath = normalize(action.payload.component)\n // Create XState service.\n let component = state.get(action.payload.componentPath)\n if (!component) {\n component = {\n componentPath: action.payload.componentPath,\n componentChunkName: action.payload.componentChunkName,\n query: ``,\n pages: new Set(),\n isInBootstrap: true,\n }\n }\n component.pages.add(action.payload.path)\n component.isInBootstrap = programStatus === `BOOTSTRAPPING`\n state.set(action.payload.componentPath, component)\n return state\n }\n case `QUERY_EXTRACTED`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n const component = state.get(action.payload.componentPath)!\n\n console.log(`QUERY_EXTRACTED`, component, action)\n\n if (component) {\n component.query = action.payload.query\n state.set(action.payload.componentPath, component)\n }\n return state\n }\n case `REMOVE_STATIC_QUERIES_BY_TEMPLATE`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n state.delete(action.payload.componentPath)\n return state\n }\n case `DELETE_PAGE`: {\n const component = state.get(normalize(action.payload.component))!\n component.pages.delete(action.payload.path)\n return state\n }\n }\n\n return state\n}\n"],"file":"components.js"}
@@ -124,23 +124,26 @@ function queriesReducer(state = initialState(), action) {
124
124
  query
125
125
  } = action.payload;
126
126
  const component = registerComponent(state, componentPath);
127
+ console.log(`reducers/queries`, component, action);
127
128
 
128
- if (hasFlag(component.errors, FLAG_ERROR_EXTRACTION)) {
129
- return state;
130
- }
129
+ if (component) {
130
+ if (hasFlag(component.errors, FLAG_ERROR_EXTRACTION)) {
131
+ return state;
132
+ }
131
133
 
132
- if (component.query !== query) {
133
- // Invalidate all pages associated with a component when query text changes
134
- for (const queryId of component.pages) {
135
- const query = state.trackedQueries.get(queryId);
134
+ if (component.query !== query) {
135
+ // Invalidate all pages associated with a component when query text changes
136
+ for (const queryId of component.pages) {
137
+ const query = state.trackedQueries.get(queryId);
136
138
 
137
- if (query) {
138
- query.dirty = setFlag(query.dirty, FLAG_DIRTY_TEXT);
139
- state = trackDirtyQuery(state, queryId);
139
+ if (query) {
140
+ query.dirty = setFlag(query.dirty, FLAG_DIRTY_TEXT);
141
+ state = trackDirtyQuery(state, queryId);
142
+ }
140
143
  }
141
- }
142
144
 
143
- component.query = query;
145
+ component.query = query;
146
+ }
144
147
  }
145
148
 
146
149
  return state;