gatsby 4.13.0 → 4.13.1

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.
@@ -66,6 +66,8 @@ var _validateEngines = require("../utils/validate-engines");
66
66
 
67
67
  var _gatsbyCloudConfig = require("../utils/gatsby-cloud-config");
68
68
 
69
+ var _workerMessaging = require("../utils/jobs/worker-messaging");
70
+
69
71
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
70
72
 
71
73
  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; }
@@ -298,7 +300,7 @@ externalTelemetryAttributes) {
298
300
  parentSpan: buildSpan
299
301
  }); // Jobs still might be running even though query running finished
300
302
 
301
- await (0, _waitUntilJobsComplete.waitUntilAllJobsComplete)(); // Restart worker pool before merging state to lower memory pressure while merging state
303
+ await Promise.all([(0, _waitUntilJobsComplete.waitUntilAllJobsComplete)(), (0, _workerMessaging.waitUntilWorkerJobsAreComplete)()]); // Restart worker pool before merging state to lower memory pressure while merging state
302
304
 
303
305
  waitForWorkerPoolRestart = workerPool.restart();
304
306
  await (0, _pool.mergeWorkerState)(workerPool, buildSpan);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/build.ts"],"names":["module","exports","build","program","externalTelemetryAttributes","global","__GATSBY","buildId","uuid","v4","root","directory","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","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","graphql","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","hasWarnings","rawMessages","toJson","all","warnings","assets","cachedAssets","hash","err","panic","Stage","BuildJavascript","end","state","getState","push","rootDir","components","staticQueriesByTemplate","reporter","isVerbose","Promise","buildSSRBundleActivityProgress","BuildHTML","pageConfigActivity","validateEnginesActivity","error","id","context","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","waitMaterializePageMode","waitForWorkerPoolRestart","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","restart","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","html","ssrCompilationHash","isTrackingEnabled","bundleSizes","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","toRegenerate","toDelete","waitWorkerPoolEnd","SSGCount","DSGCount","SSRCount","page","pages","mode","pagesCount","length","totalPagesCount","postBuildActivityTimer","e","message","_renderPageTree","functions","gatsbyCloudConfig","config","info","uptime","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","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 { updateInternalSiteMetadata, isTruthy, uuid } 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 { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport {\n createPageSSRBundle,\n writeQueryContext,\n} from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport type webpack from \"webpack\"\nimport {\n materializePageMode,\n getPageMode,\n preparePageTemplateConfigs,\n} from \"../utils/page-mode\"\nimport { validateEngines } from \"../utils/validate-engines\"\nimport { constructConfigObject } from \"../utils/gatsby-cloud-config\"\n\nmodule.exports = async function build(\n program: IBuildArgs,\n // Let external systems running Gatsby to inject attributes\n externalTelemetryAttributes: Record<string, any>\n): Promise<void> {\n // global gatsby object to use without store\n global.__GATSBY = {\n buildId: uuid.v4(),\n root: program!.directory,\n }\n\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.com/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateInternalSiteMetadata({\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 (!externalTelemetryAttributes) {\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE ||\n program.openTracingConfigFile\n )\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 (externalTelemetryAttributes) {\n Object.entries(externalTelemetryAttributes).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 await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // writes sync and async require files to disk\n // used inside routing \"html\" + \"javascript\"\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n let closeJavascriptBundleCompilation: (() => Promise<void>) | undefined\n let closeHTMLBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n\n const engineBundlingPromises: Array<Promise<any>> = []\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n\n try {\n const { stats, close } = await buildProductionBundle(\n program,\n buildActivityTimer.span\n )\n closeJavascriptBundleCompilation = close\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ all: false, warnings: true })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n\n webpackAssets = stats.toJson({\n all: false,\n assets: true,\n cachedAssets: true,\n }).assets as Array<webpack.StatsAsset>\n webpackCompilationHash = stats.hash as string\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 const state = store.getState()\n const buildActivityTimer = report.activityTimer(\n `Building Rendering Engines`,\n { parentSpan: buildSpan }\n )\n try {\n buildActivityTimer.start()\n // bundle graphql-engine\n engineBundlingPromises.push(\n createGraphqlEngineBundle(program.directory, report, program.verbose)\n )\n\n engineBundlingPromises.push(\n createPageSSRBundle({\n rootDir: program.directory,\n components: state.components,\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n webpackCompilationHash: webpackCompilationHash as string, // we set webpackCompilationHash above\n reporter: report,\n isVerbose: program.verbose,\n })\n )\n await Promise.all(engineBundlingPromises)\n } catch (err) {\n reporter.panic(err)\n } finally {\n buildActivityTimer.end()\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n try {\n const { close, stats } = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n\n closeHTMLBundleCompilation = close\n webpackSSRCompilationHash = stats.hash as string\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n // exec outer config function for each template\n const pageConfigActivity = report.activityTimer(`Execute page configs`, {\n parentSpan: buildSpan,\n })\n pageConfigActivity.start()\n try {\n await preparePageTemplateConfigs(gatsbyNodeGraphQLFunction)\n } catch (err) {\n reporter.panic(err)\n } finally {\n pageConfigActivity.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const validateEnginesActivity = report.activityTimer(\n `Validating Rendering Engines`,\n {\n parentSpan: buildSpan,\n }\n )\n validateEnginesActivity.start()\n try {\n await validateEngines(store.getState().program.directory)\n } catch (error) {\n validateEnginesActivity.panic({ id: `98001`, context: {}, error })\n } finally {\n validateEnginesActivity.end()\n }\n }\n\n const cacheActivity = report.activityTimer(`Caching Webpack compilations`, {\n parentSpan: buildSpan,\n })\n try {\n cacheActivity.start()\n await Promise.all([\n closeJavascriptBundleCompilation?.(),\n closeHTMLBundleCompilation?.(),\n ])\n } finally {\n cacheActivity.end()\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 => getPageMode(query) === `SSG`\n )\n }\n\n // Start saving page.mode in the main process (while queries run in workers in parallel)\n const waitMaterializePageMode = materializePageMode()\n\n let waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds, {\n parentSpan: buildSpan,\n })\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 // create scope so we don't leak state object\n {\n const state = store.getState()\n await writeQueryContext({\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n components: state.components,\n })\n }\n\n if (process.send && shouldGenerateEngines()) {\n await waitMaterializePageMode\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n if (\n webpackCompilationHash !== state.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 as string)\n\n rewriteActivityTimer.end()\n }\n\n if (state.html.ssrCompilationHash !== webpackSSRCompilationHash) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: webpackSSRCompilationHash,\n })\n }\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 = (webpackAssets as Array<webpack.StatsAsset>)\n .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 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 workerPool,\n parentSpan: buildSpan,\n })\n\n await waitMaterializePageMode\n const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\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 SSRCount,\n DSGCount,\n SSGCount,\n })\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 const state = store.getState()\n reporter._renderPageTree({\n components: state.components,\n functions: state.functions,\n pages: state.pages,\n root: state.program.directory,\n })\n\n if (process.send) {\n const gatsbyCloudConfig = constructConfigObject(state.config)\n\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `GATSBY_CONFIG_KEYS`,\n payload: gatsbyCloudConfig,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildActivity.end()\n if (!externalTelemetryAttributes) {\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 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","externalTelemetryAttributes","global","__GATSBY","buildId","uuid","v4","root","directory","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","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","graphql","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","hasWarnings","rawMessages","toJson","all","warnings","assets","cachedAssets","hash","err","panic","Stage","BuildJavascript","end","state","getState","push","rootDir","components","staticQueriesByTemplate","reporter","isVerbose","Promise","buildSSRBundleActivityProgress","BuildHTML","pageConfigActivity","validateEnginesActivity","error","id","context","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","waitMaterializePageMode","waitForWorkerPoolRestart","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","restart","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","html","ssrCompilationHash","isTrackingEnabled","bundleSizes","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","toRegenerate","toDelete","waitWorkerPoolEnd","SSGCount","DSGCount","SSRCount","page","pages","mode","pagesCount","length","totalPagesCount","postBuildActivityTimer","e","message","_renderPageTree","functions","gatsbyCloudConfig","config","info","uptime","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","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 { updateInternalSiteMetadata, isTruthy, uuid } 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 { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport {\n createPageSSRBundle,\n writeQueryContext,\n} from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport type webpack from \"webpack\"\nimport {\n materializePageMode,\n getPageMode,\n preparePageTemplateConfigs,\n} from \"../utils/page-mode\"\nimport { validateEngines } from \"../utils/validate-engines\"\nimport { constructConfigObject } from \"../utils/gatsby-cloud-config\"\nimport { waitUntilWorkerJobsAreComplete } from \"../utils/jobs/worker-messaging\"\n\nmodule.exports = async function build(\n program: IBuildArgs,\n // Let external systems running Gatsby to inject attributes\n externalTelemetryAttributes: Record<string, any>\n): Promise<void> {\n // global gatsby object to use without store\n global.__GATSBY = {\n buildId: uuid.v4(),\n root: program!.directory,\n }\n\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.com/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateInternalSiteMetadata({\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 (!externalTelemetryAttributes) {\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE ||\n program.openTracingConfigFile\n )\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 (externalTelemetryAttributes) {\n Object.entries(externalTelemetryAttributes).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 await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // writes sync and async require files to disk\n // used inside routing \"html\" + \"javascript\"\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n let closeJavascriptBundleCompilation: (() => Promise<void>) | undefined\n let closeHTMLBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n\n const engineBundlingPromises: Array<Promise<any>> = []\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n\n try {\n const { stats, close } = await buildProductionBundle(\n program,\n buildActivityTimer.span\n )\n closeJavascriptBundleCompilation = close\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ all: false, warnings: true })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n\n webpackAssets = stats.toJson({\n all: false,\n assets: true,\n cachedAssets: true,\n }).assets as Array<webpack.StatsAsset>\n webpackCompilationHash = stats.hash as string\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 const state = store.getState()\n const buildActivityTimer = report.activityTimer(\n `Building Rendering Engines`,\n { parentSpan: buildSpan }\n )\n try {\n buildActivityTimer.start()\n // bundle graphql-engine\n engineBundlingPromises.push(\n createGraphqlEngineBundle(program.directory, report, program.verbose)\n )\n\n engineBundlingPromises.push(\n createPageSSRBundle({\n rootDir: program.directory,\n components: state.components,\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n webpackCompilationHash: webpackCompilationHash as string, // we set webpackCompilationHash above\n reporter: report,\n isVerbose: program.verbose,\n })\n )\n await Promise.all(engineBundlingPromises)\n } catch (err) {\n reporter.panic(err)\n } finally {\n buildActivityTimer.end()\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n try {\n const { close, stats } = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n\n closeHTMLBundleCompilation = close\n webpackSSRCompilationHash = stats.hash as string\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n // exec outer config function for each template\n const pageConfigActivity = report.activityTimer(`Execute page configs`, {\n parentSpan: buildSpan,\n })\n pageConfigActivity.start()\n try {\n await preparePageTemplateConfigs(gatsbyNodeGraphQLFunction)\n } catch (err) {\n reporter.panic(err)\n } finally {\n pageConfigActivity.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const validateEnginesActivity = report.activityTimer(\n `Validating Rendering Engines`,\n {\n parentSpan: buildSpan,\n }\n )\n validateEnginesActivity.start()\n try {\n await validateEngines(store.getState().program.directory)\n } catch (error) {\n validateEnginesActivity.panic({ id: `98001`, context: {}, error })\n } finally {\n validateEnginesActivity.end()\n }\n }\n\n const cacheActivity = report.activityTimer(`Caching Webpack compilations`, {\n parentSpan: buildSpan,\n })\n try {\n cacheActivity.start()\n await Promise.all([\n closeJavascriptBundleCompilation?.(),\n closeHTMLBundleCompilation?.(),\n ])\n } finally {\n cacheActivity.end()\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 => getPageMode(query) === `SSG`\n )\n }\n\n // Start saving page.mode in the main process (while queries run in workers in parallel)\n const waitMaterializePageMode = materializePageMode()\n\n let waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds, {\n parentSpan: buildSpan,\n })\n // Jobs still might be running even though query running finished\n await Promise.all([\n waitUntilAllJobsComplete(),\n waitUntilWorkerJobsAreComplete(),\n ])\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 // create scope so we don't leak state object\n {\n const state = store.getState()\n await writeQueryContext({\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n components: state.components,\n })\n }\n\n if (process.send && shouldGenerateEngines()) {\n await waitMaterializePageMode\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n if (\n webpackCompilationHash !== state.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 as string)\n\n rewriteActivityTimer.end()\n }\n\n if (state.html.ssrCompilationHash !== webpackSSRCompilationHash) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: webpackSSRCompilationHash,\n })\n }\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 = (webpackAssets as Array<webpack.StatsAsset>)\n .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 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 workerPool,\n parentSpan: buildSpan,\n })\n\n await waitMaterializePageMode\n const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\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 SSRCount,\n DSGCount,\n SSGCount,\n })\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 const state = store.getState()\n reporter._renderPageTree({\n components: state.components,\n functions: state.functions,\n pages: state.pages,\n root: state.program.directory,\n })\n\n if (process.send) {\n const gatsbyCloudConfig = constructConfigObject(state.config)\n\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `GATSBY_CONFIG_KEYS`,\n payload: gatsbyCloudConfig,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildActivity.end()\n if (!externalTelemetryAttributes) {\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 showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
@@ -1,6 +1,7 @@
1
1
  import { InternalJob } from "./types";
2
2
  import { GatsbyWorkerPool } from "../worker/types";
3
3
  export declare function initJobsMessagingInMainProcess(workerPool: GatsbyWorkerPool): void;
4
+ export declare const waitUntilWorkerJobsAreComplete: () => Promise<void>;
4
5
  export declare function initJobsMessagingInWorker(): void;
5
6
  /**
6
7
  * Forwards job to main process (if executed in worker context) and returns
@@ -6,6 +6,7 @@ exports.__esModule = true;
6
6
  exports.initJobsMessagingInMainProcess = initJobsMessagingInMainProcess;
7
7
  exports.initJobsMessagingInWorker = initJobsMessagingInWorker;
8
8
  exports.maybeSendJobToMainProcess = maybeSendJobToMainProcess;
9
+ exports.waitUntilWorkerJobsAreComplete = void 0;
9
10
 
10
11
  var _pDefer = _interopRequireDefault(require("p-defer"));
11
12
 
@@ -17,9 +18,18 @@ var _actions = require("../../redux/actions");
17
18
 
18
19
  var _messaging = require("../worker/messaging");
19
20
 
21
+ let hasActiveWorkerJobs = null;
22
+ let activeWorkerJobs = 0;
23
+
20
24
  function initJobsMessagingInMainProcess(workerPool) {
21
25
  workerPool.onMessage((msg, workerId) => {
22
26
  if (msg.type === _types.MESSAGE_TYPES.JOB_CREATED) {
27
+ if (activeWorkerJobs === 0) {
28
+ hasActiveWorkerJobs = (0, _pDefer.default)();
29
+ }
30
+
31
+ activeWorkerJobs++;
32
+
23
33
  _redux.store.dispatch(_actions.internalActions.createJobV2FromInternalJob(msg.payload)).then(result => {
24
34
  workerPool.sendMessage({
25
35
  type: _types.MESSAGE_TYPES.JOB_COMPLETED,
@@ -36,10 +46,19 @@ function initJobsMessagingInMainProcess(workerPool) {
36
46
  error: error.message
37
47
  }
38
48
  }, workerId);
49
+ }).finally(() => {
50
+ if (--activeWorkerJobs === 0) {
51
+ var _hasActiveWorkerJobs;
52
+
53
+ (_hasActiveWorkerJobs = hasActiveWorkerJobs) === null || _hasActiveWorkerJobs === void 0 ? void 0 : _hasActiveWorkerJobs.resolve();
54
+ hasActiveWorkerJobs = null;
55
+ }
39
56
  });
40
57
  }
41
58
  });
42
59
  }
60
+
61
+ const waitUntilWorkerJobsAreComplete = () => hasActiveWorkerJobs ? hasActiveWorkerJobs.promise : Promise.resolve();
43
62
  /**
44
63
  * This map is ONLY used in worker. It's purpose is to keep track of promises returned to plugins
45
64
  * when creating jobs (in worker context), so that we can resolve or reject those once main process
@@ -47,6 +66,7 @@ function initJobsMessagingInMainProcess(workerPool) {
47
66
  */
48
67
 
49
68
 
69
+ exports.waitUntilWorkerJobsAreComplete = waitUntilWorkerJobsAreComplete;
50
70
  const deferredWorkerPromises = new Map();
51
71
  const gatsbyWorkerMessenger = (0, _messaging.getMessenger)();
52
72
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/jobs/worker-messaging.ts"],"names":["initJobsMessagingInMainProcess","workerPool","onMessage","msg","workerId","type","MESSAGE_TYPES","JOB_CREATED","store","dispatch","internalActions","createJobV2FromInternalJob","payload","then","result","sendMessage","JOB_COMPLETED","id","catch","error","JOB_FAILED","message","deferredWorkerPromises","Map","gatsbyWorkerMessenger","initJobsMessagingInWorker","isWorker","deferredPromise","get","Error","resolve","delete","reject","WorkerError","maybeSendJobToMainProcess","job","deferredWorkerPromise","set","promise","undefined"],"mappings":"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","sourcesContent":["import pDefer from \"p-defer\"\n\nimport {\n MESSAGE_TYPES,\n InternalJob,\n IJobCreatedMessage,\n WorkerError,\n} from \"./types\"\nimport { store } from \"../../redux\"\nimport { internalActions } from \"../../redux/actions\"\nimport { GatsbyWorkerPool } from \"../worker/types\"\nimport { isWorker, getMessenger } from \"../worker/messaging\"\n\nexport function initJobsMessagingInMainProcess(\n workerPool: GatsbyWorkerPool\n): void {\n workerPool.onMessage((msg, workerId) => {\n if (msg.type === MESSAGE_TYPES.JOB_CREATED) {\n store\n .dispatch(internalActions.createJobV2FromInternalJob(msg.payload))\n .then(result => {\n workerPool.sendMessage(\n {\n type: MESSAGE_TYPES.JOB_COMPLETED,\n payload: {\n id: msg.payload.id,\n result,\n },\n },\n workerId\n )\n })\n .catch(error => {\n workerPool.sendMessage(\n {\n type: MESSAGE_TYPES.JOB_FAILED,\n payload: {\n id: msg.payload.id,\n error: error.message,\n },\n },\n workerId\n )\n })\n }\n })\n}\n\n/**\n * This map is ONLY used in worker. It's purpose is to keep track of promises returned to plugins\n * when creating jobs (in worker context), so that we can resolve or reject those once main process\n * send back their status.\n */\nconst deferredWorkerPromises = new Map<\n InternalJob[\"id\"],\n pDefer.DeferredPromise<Record<string, unknown>>\n>()\nconst gatsbyWorkerMessenger = getMessenger()\nexport function initJobsMessagingInWorker(): void {\n if (isWorker && gatsbyWorkerMessenger) {\n gatsbyWorkerMessenger.onMessage(msg => {\n if (msg.type === MESSAGE_TYPES.JOB_COMPLETED) {\n const { id, result } = msg.payload\n const deferredPromise = deferredWorkerPromises.get(id)\n\n if (!deferredPromise) {\n throw new Error(\n `Received message about completed job that wasn't scheduled by this worker`\n )\n }\n\n deferredPromise.resolve(result)\n deferredWorkerPromises.delete(id)\n } else if (msg.type === MESSAGE_TYPES.JOB_FAILED) {\n const { id, error } = msg.payload\n const deferredPromise = deferredWorkerPromises.get(id)\n\n if (!deferredPromise) {\n throw new Error(\n `Received message about failed job that wasn't scheduled by this worker`\n )\n }\n\n deferredPromise.reject(new WorkerError(error))\n deferredWorkerPromises.delete(id)\n }\n })\n }\n}\n\n/**\n * Forwards job to main process (if executed in worker context) and returns\n * a promise. Will return `undefined` if called not in worker context.\n */\nexport function maybeSendJobToMainProcess(\n job: InternalJob\n): Promise<Record<string, unknown>> | undefined {\n if (isWorker && gatsbyWorkerMessenger) {\n const deferredWorkerPromise = pDefer<Record<string, unknown>>()\n\n const msg: IJobCreatedMessage = {\n type: MESSAGE_TYPES.JOB_CREATED,\n payload: job,\n }\n\n gatsbyWorkerMessenger.sendMessage(msg)\n\n // holds on to promise\n deferredWorkerPromises.set(job.id, deferredWorkerPromise)\n\n return deferredWorkerPromise.promise\n }\n\n return undefined\n}\n"],"file":"worker-messaging.js"}
1
+ {"version":3,"sources":["../../../src/utils/jobs/worker-messaging.ts"],"names":["hasActiveWorkerJobs","activeWorkerJobs","initJobsMessagingInMainProcess","workerPool","onMessage","msg","workerId","type","MESSAGE_TYPES","JOB_CREATED","store","dispatch","internalActions","createJobV2FromInternalJob","payload","then","result","sendMessage","JOB_COMPLETED","id","catch","error","JOB_FAILED","message","finally","resolve","waitUntilWorkerJobsAreComplete","promise","Promise","deferredWorkerPromises","Map","gatsbyWorkerMessenger","initJobsMessagingInWorker","isWorker","deferredPromise","get","Error","delete","reject","WorkerError","maybeSendJobToMainProcess","job","deferredWorkerPromise","set","undefined"],"mappings":"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","sourcesContent":["import pDefer from \"p-defer\"\n\nimport {\n MESSAGE_TYPES,\n InternalJob,\n IJobCreatedMessage,\n WorkerError,\n} from \"./types\"\nimport { store } from \"../../redux\"\nimport { internalActions } from \"../../redux/actions\"\nimport { GatsbyWorkerPool } from \"../worker/types\"\nimport { isWorker, getMessenger } from \"../worker/messaging\"\n\nlet hasActiveWorkerJobs: pDefer.DeferredPromise<void> | null = null\nlet activeWorkerJobs = 0\n\nexport function initJobsMessagingInMainProcess(\n workerPool: GatsbyWorkerPool\n): void {\n workerPool.onMessage((msg, workerId) => {\n if (msg.type === MESSAGE_TYPES.JOB_CREATED) {\n if (activeWorkerJobs === 0) {\n hasActiveWorkerJobs = pDefer<void>()\n }\n activeWorkerJobs++\n store\n .dispatch(internalActions.createJobV2FromInternalJob(msg.payload))\n .then(result => {\n workerPool.sendMessage(\n {\n type: MESSAGE_TYPES.JOB_COMPLETED,\n payload: {\n id: msg.payload.id,\n result,\n },\n },\n workerId\n )\n })\n .catch(error => {\n workerPool.sendMessage(\n {\n type: MESSAGE_TYPES.JOB_FAILED,\n payload: {\n id: msg.payload.id,\n error: error.message,\n },\n },\n workerId\n )\n })\n .finally(() => {\n if (--activeWorkerJobs === 0) {\n hasActiveWorkerJobs?.resolve()\n hasActiveWorkerJobs = null\n }\n })\n }\n })\n}\n\nexport const waitUntilWorkerJobsAreComplete = (): Promise<void> =>\n hasActiveWorkerJobs ? hasActiveWorkerJobs.promise : Promise.resolve()\n\n/**\n * This map is ONLY used in worker. It's purpose is to keep track of promises returned to plugins\n * when creating jobs (in worker context), so that we can resolve or reject those once main process\n * send back their status.\n */\nconst deferredWorkerPromises = new Map<\n InternalJob[\"id\"],\n pDefer.DeferredPromise<Record<string, unknown>>\n>()\nconst gatsbyWorkerMessenger = getMessenger()\nexport function initJobsMessagingInWorker(): void {\n if (isWorker && gatsbyWorkerMessenger) {\n gatsbyWorkerMessenger.onMessage(msg => {\n if (msg.type === MESSAGE_TYPES.JOB_COMPLETED) {\n const { id, result } = msg.payload\n const deferredPromise = deferredWorkerPromises.get(id)\n\n if (!deferredPromise) {\n throw new Error(\n `Received message about completed job that wasn't scheduled by this worker`\n )\n }\n\n deferredPromise.resolve(result)\n deferredWorkerPromises.delete(id)\n } else if (msg.type === MESSAGE_TYPES.JOB_FAILED) {\n const { id, error } = msg.payload\n const deferredPromise = deferredWorkerPromises.get(id)\n\n if (!deferredPromise) {\n throw new Error(\n `Received message about failed job that wasn't scheduled by this worker`\n )\n }\n\n deferredPromise.reject(new WorkerError(error))\n deferredWorkerPromises.delete(id)\n }\n })\n }\n}\n\n/**\n * Forwards job to main process (if executed in worker context) and returns\n * a promise. Will return `undefined` if called not in worker context.\n */\nexport function maybeSendJobToMainProcess(\n job: InternalJob\n): Promise<Record<string, unknown>> | undefined {\n if (isWorker && gatsbyWorkerMessenger) {\n const deferredWorkerPromise = pDefer<Record<string, unknown>>()\n\n const msg: IJobCreatedMessage = {\n type: MESSAGE_TYPES.JOB_CREATED,\n payload: job,\n }\n\n gatsbyWorkerMessenger.sendMessage(msg)\n\n // holds on to promise\n deferredWorkerPromises.set(job.id, deferredWorkerPromise)\n\n return deferredWorkerPromise.promise\n }\n\n return undefined\n}\n"],"file":"worker-messaging.js"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gatsby",
3
3
  "description": "Blazing fast modern site generator for React",
4
- "version": "4.13.0",
4
+ "version": "4.13.1",
5
5
  "author": "Kyle Mathews <mathews.kyle@gmail.com>",
6
6
  "bin": {
7
7
  "gatsby": "./cli.js"
@@ -265,5 +265,5 @@
265
265
  "yargs": {
266
266
  "boolean-negation": false
267
267
  },
268
- "gitHead": "89509ff7893787cf7359bc64b66a2ec32ced51d0"
268
+ "gitHead": "d10b8b7ddfab9e0ec67dee8718dba376f1c380f1"
269
269
  }