gatsby 5.13.4 → 5.13.6
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.
- package/dist/commands/build.js +23 -25
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/serve.js +4 -3
- package/dist/commands/serve.js.map +1 -1
- package/dist/schema/graphql-engine/entry.d.ts +3 -0
- package/dist/schema/graphql-engine/entry.js +4 -0
- package/dist/schema/graphql-engine/entry.js.map +1 -1
- package/dist/utils/adapter/create-headers.d.ts +1 -1
- package/dist/utils/adapter/create-headers.js +19 -5
- package/dist/utils/adapter/create-headers.js.map +1 -1
- package/dist/utils/adapter/get-route-path.d.ts +1 -1
- package/dist/utils/adapter/get-route-path.js.map +1 -1
- package/dist/utils/adapter/manager.js +2 -2
- package/dist/utils/adapter/manager.js.map +1 -1
- package/dist/utils/engines-helpers.d.ts +1 -1
- package/dist/utils/engines-helpers.js +3 -3
- package/dist/utils/engines-helpers.js.map +1 -1
- package/dist/utils/get-server-data.d.ts +1 -1
- package/dist/utils/get-server-data.js.map +1 -1
- package/dist/utils/page-ssr-module/bundle-webpack.js +19 -1
- package/dist/utils/page-ssr-module/bundle-webpack.js.map +1 -1
- package/dist/utils/page-ssr-module/entry.d.ts +16 -4
- package/dist/utils/page-ssr-module/entry.js +47 -33
- package/dist/utils/page-ssr-module/entry.js.map +1 -1
- package/dist/utils/page-ssr-module/lambda.js +87 -31
- package/dist/utils/page-ssr-module/lambda.js.map +1 -1
- package/index.d.ts +4 -0
- package/package.json +3 -3
package/dist/commands/build.js
CHANGED
|
@@ -138,31 +138,6 @@ externalTelemetryAttributes) {
|
|
|
138
138
|
} finally {
|
|
139
139
|
buildActivityTimer.end();
|
|
140
140
|
}
|
|
141
|
-
if ((0, _enginesHelpers.shouldGenerateEngines)()) {
|
|
142
|
-
const state = _redux.store.getState();
|
|
143
|
-
const buildActivityTimer = _reporter.default.activityTimer(`Building Rendering Engines`, {
|
|
144
|
-
parentSpan: buildSpan
|
|
145
|
-
});
|
|
146
|
-
try {
|
|
147
|
-
buildActivityTimer.start();
|
|
148
|
-
// bundle graphql-engine
|
|
149
|
-
engineBundlingPromises.push((0, _bundleWebpack.createGraphqlEngineBundle)(program.directory, _reporter.default, program.verbose));
|
|
150
|
-
engineBundlingPromises.push((0, _bundleWebpack2.createPageSSRBundle)({
|
|
151
|
-
rootDir: program.directory,
|
|
152
|
-
components: state.components,
|
|
153
|
-
staticQueriesByTemplate: state.staticQueriesByTemplate,
|
|
154
|
-
webpackCompilationHash: webpackCompilationHash,
|
|
155
|
-
// we set webpackCompilationHash above
|
|
156
|
-
reporter: _reporter.default,
|
|
157
|
-
isVerbose: program.verbose
|
|
158
|
-
}));
|
|
159
|
-
await Promise.all(engineBundlingPromises);
|
|
160
|
-
} catch (err) {
|
|
161
|
-
_reporter.default.panic(err);
|
|
162
|
-
} finally {
|
|
163
|
-
buildActivityTimer.end();
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
141
|
const buildSSRBundleActivityProgress = _reporter.default.activityTimer(`Building HTML renderer`, {
|
|
167
142
|
parentSpan: buildSpan
|
|
168
143
|
});
|
|
@@ -226,6 +201,29 @@ externalTelemetryAttributes) {
|
|
|
226
201
|
pageConfigActivity.end();
|
|
227
202
|
}
|
|
228
203
|
if ((0, _enginesHelpers.shouldGenerateEngines)()) {
|
|
204
|
+
const state = _redux.store.getState();
|
|
205
|
+
const buildActivityTimer = _reporter.default.activityTimer(`Building Rendering Engines`, {
|
|
206
|
+
parentSpan: buildSpan
|
|
207
|
+
});
|
|
208
|
+
try {
|
|
209
|
+
buildActivityTimer.start();
|
|
210
|
+
// bundle graphql-engine
|
|
211
|
+
engineBundlingPromises.push((0, _bundleWebpack.createGraphqlEngineBundle)(program.directory, _reporter.default, program.verbose));
|
|
212
|
+
engineBundlingPromises.push((0, _bundleWebpack2.createPageSSRBundle)({
|
|
213
|
+
rootDir: program.directory,
|
|
214
|
+
components: state.components,
|
|
215
|
+
staticQueriesByTemplate: state.staticQueriesByTemplate,
|
|
216
|
+
webpackCompilationHash: webpackCompilationHash,
|
|
217
|
+
// we set webpackCompilationHash above
|
|
218
|
+
reporter: _reporter.default,
|
|
219
|
+
isVerbose: program.verbose
|
|
220
|
+
}));
|
|
221
|
+
await Promise.all(engineBundlingPromises);
|
|
222
|
+
} catch (err) {
|
|
223
|
+
_reporter.default.panic(err);
|
|
224
|
+
} finally {
|
|
225
|
+
buildActivityTimer.end();
|
|
226
|
+
}
|
|
229
227
|
await (0, _validateEngines.validateEnginesWithActivity)(program.directory, buildSpan);
|
|
230
228
|
}
|
|
231
229
|
const cacheActivity = _reporter.default.activityTimer(`Caching Webpack compilations`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","names":["module","exports","build","program","externalTelemetryAttributes","global","__GATSBY","buildId","uuid","v4","root","directory","isTruthy","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","NODE_ENV","updateInternalSiteMetadata","name","sitePackageJson","sitePath","lastRun","Date","now","pid","markWebpackStatusAsPending","publicDir","path","join","initTracer","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","signalExit","exitCode","buildSpan","span","setTag","Object","entries","forEach","key","value","gatsbyNodeGraphQLFunction","workerPool","adapterManager","bootstrap","parentSpan","apiRunnerNode","graphql","writeOutRequires","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","closePartialHydrationBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","templateCompilationHashes","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","buildProductionBundle","hasWarnings","rawMessages","toJson","all","warnings","reportWebpackWarnings","assets","cachedAssets","hash","err","panic","structureWebpackErrors","Stage","BuildJavascript","end","shouldGenerateEngines","state","getState","push","createGraphqlEngineBundle","createPageSSRBundle","rootDir","components","staticQueriesByTemplate","reporter","isVerbose","Promise","buildSSRBundleActivityProgress","buildRenderer","BuildHTML","GATSBY_SLICES","renderPageHash","templateHashes","getSSRChunkHashes","GATSBY_PARTIAL_HYDRATION","buildPartialHydrationBundleActivityProgress","buildPartialHydrationRenderer","pageConfigActivity","preparePageTemplateConfigs","validateEnginesWithActivity","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","calculateDirtyQueries","pageQueryIds","filter","query","getPageMode","waitMaterializePageMode","materializePageMode","waitForWorkerPoolRestart","resolve","cpuCoreCount","runStaticQueries","runPageQueries","runQueriesInWorkersQueue","waitUntilAllJobsComplete","waitUntilWorkerJobsAreComplete","restart","mergeWorkerState","runSliceQueries","engineTemplatePaths","Set","SSGCount","DSGCount","SSRCount","page","pages","values","mode","add","componentPath","addSiteMeasurement","totalPagesCount","size","copyStaticQueriesToEngine","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","templatePath","templateHash","component","get","isSlice","console","error","availableTemplates","keys","Error","html","ssrCompilationHash","flushPendingPageDataWrites","markWebpackStatusAsDone","sliceDataPath","fs","existsSync","destination","copySync","copyStaticDirs","isTrackingEnabled","bundleSizes","asset","endsWith","map","pageDataSizes","pageDataStats","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","toRegenerate","toDelete","buildHTMLPagesAndDeleteStaleArtifacts","waitWorkerPoolEnd","schema","definitions","config","graphqlTypegenOptions","graphqlTypegen","generateOnBuild","typegenActivity","writeTypeScriptTypes","panicOnBuild","id","context","sourceMessage","postBuildActivityTimer","e","message","_renderPageTree","functions","gatsbyCloudConfig","constructConfigObject","info","uptime","stopTracer","logPages","length","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","writeFile","storeCache","adapt","showExperimentNotices","userGetsSevenDayFeedback","showSevenDayFeedbackRequest","userPassesFeedbackRequestHeuristic","showFeedbackRequest"],"sources":["../../src/commands/build.ts"],"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 {\n updateInternalSiteMetadata,\n isTruthy,\n uuid,\n cpuCoreCount,\n} 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 runSliceQueries,\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 copyStaticQueriesToEngine,\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 { validateEnginesWithActivity } from \"../utils/validate-engines\"\nimport { constructConfigObject } from \"../utils/gatsby-cloud-config\"\nimport { waitUntilWorkerJobsAreComplete } from \"../utils/jobs/worker-messaging\"\nimport { getSSRChunkHashes } from \"../utils/webpack/get-ssr-chunk-hashes\"\nimport { writeTypeScriptTypes } from \"../utils/graphql-typegen/ts-codegen\"\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 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\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 report.verbose(`Running build in \"${process.env.NODE_ENV}\" environment`)\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, adapterManager } =\n 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 closePartialHydrationBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n let templateCompilationHashes: Record<string, string> = {}\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 (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 if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n const { renderPageHash, templateHashes } = getSSRChunkHashes({\n stats,\n components: store.getState().components,\n })\n webpackSSRCompilationHash = renderPageHash\n templateCompilationHashes = templateHashes\n } else {\n webpackSSRCompilationHash = stats.hash as string\n }\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n if (\n (process.env.GATSBY_PARTIAL_HYDRATION === `true` ||\n process.env.GATSBY_PARTIAL_HYDRATION === `1`) &&\n _CFLAGS_.GATSBY_MAJOR === `5`\n ) {\n const buildPartialHydrationBundleActivityProgress = report.activityTimer(\n `Building Partial Hydration renderer`,\n { parentSpan: buildSpan }\n )\n buildPartialHydrationBundleActivityProgress.start()\n try {\n const { buildPartialHydrationRenderer } = await import(`./build-html`)\n const { close } = await buildPartialHydrationRenderer(\n program,\n Stage.BuildHTML,\n buildPartialHydrationBundleActivityProgress.span\n )\n\n closePartialHydrationBundleCompilation = close\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildPartialHydrationBundleActivityProgress.end()\n }\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 (shouldGenerateEngines()) {\n await validateEnginesWithActivity(program.directory, buildSpan)\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 closePartialHydrationBundleCompilation?.(),\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\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => getPageMode(query) === `SSG`\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 one wants to debug query running you can set the CPU count to 1\n if (cpuCoreCount() === 1) {\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 } else {\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 }\n\n if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n await runSliceQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n const engineTemplatePaths = new Set<string>()\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n engineTemplatePaths.add(page.componentPath)\n } else if (page.mode === `DSG`) {\n DSGCount++\n engineTemplatePaths.add(page.componentPath)\n } else {\n SSGCount++\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n totalPagesCount: store.getState().pages.size, // total number of pages\n SSRCount,\n DSGCount,\n SSGCount,\n })\n }\n\n await copyStaticQueriesToEngine({\n engineTemplatePaths,\n staticQueriesByTemplate: store.getState().staticQueriesByTemplate,\n components: store.getState().components,\n })\n\n if (!(_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES)) {\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\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 (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n Object.entries(templateCompilationHashes).forEach(\n ([templatePath, templateHash]) => {\n const component = store.getState().components.get(templatePath)\n if (component) {\n const action = {\n type: `SET_SSR_TEMPLATE_WEBPACK_COMPILATION_HASH`,\n payload: {\n templatePath,\n templateHash,\n pages: component.pages,\n isSlice: component.isSlice,\n },\n }\n store.dispatch(action)\n } else {\n console.error({\n templatePath,\n templateHash,\n availableTemplates: [...store.getState().components.keys()],\n })\n throw new Error(\n `something changed in webpack but I don't know what`\n )\n }\n }\n )\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 (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n if (shouldGenerateEngines()) {\n const state = store.getState()\n const sliceDataPath = path.join(\n state.program.directory,\n `public`,\n `slice-data`\n )\n if (fs.existsSync(sliceDataPath)) {\n const destination = path.join(\n state.program.directory,\n `.cache`,\n `page-ssr`,\n `slice-data`\n )\n fs.copySync(sliceDataPath, destination)\n }\n\n if (process.send) {\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 }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\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 (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 // create scope so we don't leak state object\n {\n const { schema, definitions, config } = store.getState()\n const directory = program.directory\n const graphqlTypegenOptions = config.graphqlTypegen\n\n // Only generate types when the option is enabled\n if (graphqlTypegenOptions && graphqlTypegenOptions.generateOnBuild) {\n const typegenActivity = reporter.activityTimer(\n `Generating TypeScript types`,\n {\n parentSpan: buildSpan,\n }\n )\n typegenActivity.start()\n\n try {\n await writeTypeScriptTypes(\n directory,\n schema,\n definitions,\n graphqlTypegenOptions\n )\n } catch (err) {\n typegenActivity.panicOnBuild({\n id: `12100`,\n context: {\n sourceMessage: err,\n },\n })\n }\n\n typegenActivity.end()\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n totalPagesCount: store.getState().pages.size, // total number of pages\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 if (adapterManager) {\n await adapterManager.storeCache()\n await adapterManager.adapt()\n }\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","names":["module","exports","build","program","externalTelemetryAttributes","global","__GATSBY","buildId","uuid","v4","root","directory","isTruthy","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","NODE_ENV","updateInternalSiteMetadata","name","sitePackageJson","sitePath","lastRun","Date","now","pid","markWebpackStatusAsPending","publicDir","path","join","initTracer","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","signalExit","exitCode","buildSpan","span","setTag","Object","entries","forEach","key","value","gatsbyNodeGraphQLFunction","workerPool","adapterManager","bootstrap","parentSpan","apiRunnerNode","graphql","writeOutRequires","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","closePartialHydrationBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","templateCompilationHashes","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","buildProductionBundle","hasWarnings","rawMessages","toJson","all","warnings","reportWebpackWarnings","assets","cachedAssets","hash","err","panic","structureWebpackErrors","Stage","BuildJavascript","end","buildSSRBundleActivityProgress","buildRenderer","BuildHTML","GATSBY_SLICES","renderPageHash","templateHashes","getSSRChunkHashes","components","getState","GATSBY_PARTIAL_HYDRATION","buildPartialHydrationBundleActivityProgress","buildPartialHydrationRenderer","pageConfigActivity","preparePageTemplateConfigs","reporter","shouldGenerateEngines","state","push","createGraphqlEngineBundle","createPageSSRBundle","rootDir","staticQueriesByTemplate","isVerbose","Promise","validateEnginesWithActivity","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","calculateDirtyQueries","pageQueryIds","filter","query","getPageMode","waitMaterializePageMode","materializePageMode","waitForWorkerPoolRestart","resolve","cpuCoreCount","runStaticQueries","runPageQueries","runQueriesInWorkersQueue","waitUntilAllJobsComplete","waitUntilWorkerJobsAreComplete","restart","mergeWorkerState","runSliceQueries","engineTemplatePaths","Set","SSGCount","DSGCount","SSRCount","page","pages","values","mode","add","componentPath","addSiteMeasurement","totalPagesCount","size","copyStaticQueriesToEngine","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","templatePath","templateHash","component","get","isSlice","console","error","availableTemplates","keys","Error","html","ssrCompilationHash","flushPendingPageDataWrites","markWebpackStatusAsDone","sliceDataPath","fs","existsSync","destination","copySync","copyStaticDirs","isTrackingEnabled","bundleSizes","asset","endsWith","map","pageDataSizes","pageDataStats","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","toRegenerate","toDelete","buildHTMLPagesAndDeleteStaleArtifacts","waitWorkerPoolEnd","schema","definitions","config","graphqlTypegenOptions","graphqlTypegen","generateOnBuild","typegenActivity","writeTypeScriptTypes","panicOnBuild","id","context","sourceMessage","postBuildActivityTimer","e","message","_renderPageTree","functions","gatsbyCloudConfig","constructConfigObject","info","uptime","stopTracer","logPages","length","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","writeFile","storeCache","adapt","showExperimentNotices","userGetsSevenDayFeedback","showSevenDayFeedbackRequest","userPassesFeedbackRequestHeuristic","showFeedbackRequest"],"sources":["../../src/commands/build.ts"],"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 {\n updateInternalSiteMetadata,\n isTruthy,\n uuid,\n cpuCoreCount,\n} 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 runSliceQueries,\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 copyStaticQueriesToEngine,\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 { validateEnginesWithActivity } from \"../utils/validate-engines\"\nimport { constructConfigObject } from \"../utils/gatsby-cloud-config\"\nimport { waitUntilWorkerJobsAreComplete } from \"../utils/jobs/worker-messaging\"\nimport { getSSRChunkHashes } from \"../utils/webpack/get-ssr-chunk-hashes\"\nimport { writeTypeScriptTypes } from \"../utils/graphql-typegen/ts-codegen\"\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 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\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 report.verbose(`Running build in \"${process.env.NODE_ENV}\" environment`)\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, adapterManager } =\n 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 closePartialHydrationBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n let templateCompilationHashes: Record<string, string> = {}\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 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 if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n const { renderPageHash, templateHashes } = getSSRChunkHashes({\n stats,\n components: store.getState().components,\n })\n webpackSSRCompilationHash = renderPageHash\n templateCompilationHashes = templateHashes\n } else {\n webpackSSRCompilationHash = stats.hash as string\n }\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n if (\n (process.env.GATSBY_PARTIAL_HYDRATION === `true` ||\n process.env.GATSBY_PARTIAL_HYDRATION === `1`) &&\n _CFLAGS_.GATSBY_MAJOR === `5`\n ) {\n const buildPartialHydrationBundleActivityProgress = report.activityTimer(\n `Building Partial Hydration renderer`,\n { parentSpan: buildSpan }\n )\n buildPartialHydrationBundleActivityProgress.start()\n try {\n const { buildPartialHydrationRenderer } = await import(`./build-html`)\n const { close } = await buildPartialHydrationRenderer(\n program,\n Stage.BuildHTML,\n buildPartialHydrationBundleActivityProgress.span\n )\n\n closePartialHydrationBundleCompilation = close\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildPartialHydrationBundleActivityProgress.end()\n }\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 (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 await validateEnginesWithActivity(program.directory, buildSpan)\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 closePartialHydrationBundleCompilation?.(),\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\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => getPageMode(query) === `SSG`\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 one wants to debug query running you can set the CPU count to 1\n if (cpuCoreCount() === 1) {\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 } else {\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 }\n\n if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n await runSliceQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n const engineTemplatePaths = new Set<string>()\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n engineTemplatePaths.add(page.componentPath)\n } else if (page.mode === `DSG`) {\n DSGCount++\n engineTemplatePaths.add(page.componentPath)\n } else {\n SSGCount++\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n totalPagesCount: store.getState().pages.size, // total number of pages\n SSRCount,\n DSGCount,\n SSGCount,\n })\n }\n\n await copyStaticQueriesToEngine({\n engineTemplatePaths,\n staticQueriesByTemplate: store.getState().staticQueriesByTemplate,\n components: store.getState().components,\n })\n\n if (!(_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES)) {\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\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 (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n Object.entries(templateCompilationHashes).forEach(\n ([templatePath, templateHash]) => {\n const component = store.getState().components.get(templatePath)\n if (component) {\n const action = {\n type: `SET_SSR_TEMPLATE_WEBPACK_COMPILATION_HASH`,\n payload: {\n templatePath,\n templateHash,\n pages: component.pages,\n isSlice: component.isSlice,\n },\n }\n store.dispatch(action)\n } else {\n console.error({\n templatePath,\n templateHash,\n availableTemplates: [...store.getState().components.keys()],\n })\n throw new Error(\n `something changed in webpack but I don't know what`\n )\n }\n }\n )\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 (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n if (shouldGenerateEngines()) {\n const state = store.getState()\n const sliceDataPath = path.join(\n state.program.directory,\n `public`,\n `slice-data`\n )\n if (fs.existsSync(sliceDataPath)) {\n const destination = path.join(\n state.program.directory,\n `.cache`,\n `page-ssr`,\n `slice-data`\n )\n fs.copySync(sliceDataPath, destination)\n }\n\n if (process.send) {\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 }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\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 (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 // create scope so we don't leak state object\n {\n const { schema, definitions, config } = store.getState()\n const directory = program.directory\n const graphqlTypegenOptions = config.graphqlTypegen\n\n // Only generate types when the option is enabled\n if (graphqlTypegenOptions && graphqlTypegenOptions.generateOnBuild) {\n const typegenActivity = reporter.activityTimer(\n `Generating TypeScript types`,\n {\n parentSpan: buildSpan,\n }\n )\n typegenActivity.start()\n\n try {\n await writeTypeScriptTypes(\n directory,\n schema,\n definitions,\n graphqlTypegenOptions\n )\n } catch (err) {\n typegenActivity.panicOnBuild({\n id: `12100`,\n context: {\n sourceMessage: err,\n },\n })\n }\n\n typegenActivity.end()\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n totalPagesCount: store.getState().pages.size, // total number of pages\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 if (adapterManager) {\n await adapterManager.storeCache()\n await adapterManager.adapt()\n }\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"mappings":"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"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -136,7 +136,8 @@ module.exports = async program => {
|
|
|
136
136
|
const {
|
|
137
137
|
getData,
|
|
138
138
|
renderPageData,
|
|
139
|
-
renderHTML
|
|
139
|
+
renderHTML,
|
|
140
|
+
findEnginePageByPath
|
|
140
141
|
} = require(pageSSRModule);
|
|
141
142
|
const graphqlEngine = new GraphQLEngine({
|
|
142
143
|
dbPath: _path.default.posix.join((0, _path2.slash)(program.directory), `.cache`, `data`, `datastore`)
|
|
@@ -147,7 +148,7 @@ module.exports = async program => {
|
|
|
147
148
|
return void next();
|
|
148
149
|
}
|
|
149
150
|
const potentialPagePath = (0, _pageData.reverseFixedPagePath)(requestedPagePath);
|
|
150
|
-
const page =
|
|
151
|
+
const page = findEnginePageByPath(potentialPagePath);
|
|
151
152
|
if (page && (page.mode === `DSG` || page.mode === `SSR`)) {
|
|
152
153
|
const requestActivity = _reporter.default.phantomActivity(`request for "${req.path}"`);
|
|
153
154
|
requestActivity.start();
|
|
@@ -185,7 +186,7 @@ module.exports = async program => {
|
|
|
185
186
|
router.use(async (req, res, next) => {
|
|
186
187
|
if (req.accepts(`html`)) {
|
|
187
188
|
const potentialPagePath = req.path;
|
|
188
|
-
const page =
|
|
189
|
+
const page = findEnginePageByPath(potentialPagePath);
|
|
189
190
|
if (page && (page.mode === `DSG` || page.mode === `SSR`)) {
|
|
190
191
|
const requestActivity = _reporter.default.phantomActivity(`request for "${req.path}"`);
|
|
191
192
|
requestActivity.start();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","names":["onExit","telemetry","trackCli","readMatchPaths","program","filePath","path","join","directory","rawJSON","fs","readFile","error","report","warn","chalk","bold","JSON","parse","matchPathRouter","matchPaths","options","req","res","next","url","accepts","matchPath","find","reachMatch","sendFile","err","module","exports","startBackgroundUpdate","initTracer","process","env","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","prefixPaths","port","open","host","parseInt","configModule","getConfigFile","config","preferDefault","pathPrefix","configPathPrefix","trailingSlash","root","app","express","partytownProxiedURLs","use","thirdPartyProxyPath","partytownProxy","router","Router","expressMiddleware","compression","configureTrailingSlash","pages","get","pathName","getDataStore","getNode","values","iterateNodesByType","static","dotfiles","compiledFunctionsDir","functions","readFileSync","e","functionMiddlewaresInstances","functionMiddlewares","getFunctions","graphqlEnginePath","pageSSRModule","require","resolve","posix","slash","GraphQLEngine","getData","renderPageData","renderHTML","graphqlEngine","dbPath","requestedPagePath","params","pagePath","potentialPagePath","reverseFixedPagePath","page","findPageByPath","mode","requestActivity","phantomActivity","start","spanContext","span","context","data","results","serverDataHeaders","name","value","Object","entries","setHeader","serverDataStatus","status","send","contentType","end","panic","id","_","header","printInstructions","appName","urls","console","log","lanUrlForTerminal","localUrlForTerminal","startListening","listen","prepareUrls","ssl","sitePackageJson","info","Promise","openurl","localUrlForBrowser","catch","detectPortInUseAndPrompt","message"],"sources":["../../src/commands/serve.ts"],"sourcesContent":["import path from \"path\"\nimport openurl from \"better-opn\"\nimport fs from \"fs-extra\"\nimport compression from \"compression\"\nimport express from \"express\"\nimport chalk from \"chalk\"\nimport { match as reachMatch } from \"@gatsbyjs/reach-router\"\nimport onExit from \"signal-exit\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport { getConfigFile } from \"../bootstrap/get-config-file\"\nimport { preferDefault } from \"../bootstrap/prefer-default\"\nimport { IProgram } from \"./types\"\nimport { IPreparedUrls, prepareUrls } from \"../utils/prepare-urls\"\nimport {\n IGatsbyConfig,\n IGatsbyFunction,\n IGatsbyPage,\n IGatsbyState,\n} from \"../redux/types\"\nimport { reverseFixedPagePath } from \"../utils/page-data\"\nimport { initTracer } from \"../utils/tracer\"\nimport { configureTrailingSlash } from \"../utils/express-middlewares\"\nimport { getDataStore } from \"../datastore\"\nimport { functionMiddlewares } from \"../internal-plugins/functions/middleware\"\nimport {\n thirdPartyProxyPath,\n partytownProxy,\n} from \"../internal-plugins/partytown/proxy\"\nimport { slash } from \"gatsby-core-utils/path\"\n\ninterface IMatchPath {\n path: string\n matchPath: string\n}\n\ninterface IServeProgram extends IProgram {\n prefixPaths: boolean\n}\n\nonExit(() => {\n telemetry.trackCli(`SERVE_STOP`)\n})\n\nconst readMatchPaths = async (\n program: IServeProgram\n): Promise<Array<IMatchPath>> => {\n const filePath = path.join(program.directory, `.cache`, `match-paths.json`)\n let rawJSON = `[]`\n try {\n rawJSON = await fs.readFile(filePath, `utf8`)\n } catch (error) {\n report.warn(error)\n report.warn(\n `Could not read ${chalk.bold(\n `match-paths.json`\n )} from the .cache directory`\n )\n report.warn(\n `Client-side routing will not work correctly. Maybe you need to re-run ${chalk.bold(\n `gatsby build`\n )}?`\n )\n }\n return JSON.parse(rawJSON) as Array<IMatchPath>\n}\n\nconst matchPathRouter =\n (\n matchPaths: Array<IMatchPath>,\n options: {\n root: string\n }\n ) =>\n (\n req: express.Request,\n res: express.Response,\n next: express.NextFunction\n ): void => {\n const { url } = req\n if (req.accepts(`html`)) {\n const matchPath = matchPaths.find(\n ({ matchPath }) => reachMatch(matchPath, url) !== null\n )\n if (matchPath) {\n return res.sendFile(\n path.join(matchPath.path, `index.html`),\n options,\n err => {\n if (err) {\n next()\n }\n }\n )\n }\n }\n return next()\n }\n\nmodule.exports = async (program: IServeProgram): Promise<void> => {\n telemetry.trackCli(`SERVE_START`)\n telemetry.startBackgroundUpdate()\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n let { prefixPaths, port, open, host } = program\n port = typeof port === `string` ? parseInt(port, 10) : port\n\n const { configModule } = await getConfigFile(\n program.directory,\n `gatsby-config`\n )\n const config: IGatsbyConfig = preferDefault(configModule)\n\n const { pathPrefix: configPathPrefix, trailingSlash } = config || {}\n\n const pathPrefix = prefixPaths && configPathPrefix ? configPathPrefix : `/`\n\n const root = path.join(program.directory, `public`)\n\n const app = express()\n\n // Proxy gatsby-script using off-main-thread strategy\n const { partytownProxiedURLs = [] } = config || {}\n\n app.use(thirdPartyProxyPath, partytownProxy(partytownProxiedURLs))\n\n // eslint-disable-next-line new-cap\n const router = express.Router()\n\n app.use(telemetry.expressMiddleware(`SERVE`))\n\n router.use(compression())\n\n router.use(\n configureTrailingSlash(\n () =>\n ({\n pages: {\n get(pathName: string): IGatsbyPage | undefined {\n return getDataStore().getNode(`SitePage ${pathName}`) as\n | IGatsbyPage\n | undefined\n },\n values(): Iterable<IGatsbyPage> {\n return getDataStore().iterateNodesByType(\n `SitePage`\n ) as Iterable<IGatsbyPage>\n },\n },\n } as unknown as IGatsbyState),\n trailingSlash\n )\n )\n\n router.use(express.static(`public`, { dotfiles: `allow` }))\n\n const compiledFunctionsDir = path.join(\n program.directory,\n `.cache`,\n `functions`\n )\n\n let functions: Array<IGatsbyFunction> = []\n try {\n functions = JSON.parse(\n fs.readFileSync(path.join(compiledFunctionsDir, `manifest.json`), `utf-8`)\n )\n } catch (e) {\n // ignore\n }\n\n if (functions) {\n const functionMiddlewaresInstances = functionMiddlewares({\n getFunctions(): Array<IGatsbyFunction> {\n return functions\n },\n })\n\n router.use(`/api/*`, ...functionMiddlewaresInstances)\n // TODO(v6) remove handler from app and only keep it on router (router is setup on pathPrefix, while app is always root)\n app.use(`/api/*`, ...functionMiddlewaresInstances)\n }\n\n // Handle SSR & DSG Pages\n let graphqlEnginePath: string | undefined\n let pageSSRModule: string | undefined\n try {\n graphqlEnginePath = require.resolve(\n path.posix.join(slash(program.directory), `.cache`, `query-engine`)\n )\n pageSSRModule = require.resolve(\n path.posix.join(slash(program.directory), `.cache`, `page-ssr`)\n )\n } catch (error) {\n // TODO: Handle case of engine not being generated\n }\n\n if (graphqlEnginePath && pageSSRModule) {\n try {\n const { GraphQLEngine } =\n require(graphqlEnginePath) as typeof import(\"../schema/graphql-engine/entry\")\n const { getData, renderPageData, renderHTML } =\n require(pageSSRModule) as typeof import(\"../utils/page-ssr-module/entry\")\n const graphqlEngine = new GraphQLEngine({\n dbPath: path.posix.join(\n slash(program.directory),\n `.cache`,\n `data`,\n `datastore`\n ),\n })\n\n router.get(\n `/page-data/:pagePath(*)/page-data.json`,\n async (req, res, next) => {\n const requestedPagePath = req.params.pagePath\n if (!requestedPagePath) {\n return void next()\n }\n\n const potentialPagePath = reverseFixedPagePath(requestedPagePath)\n const page = graphqlEngine.findPageByPath(potentialPagePath)\n\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n const requestActivity = report.phantomActivity(\n `request for \"${req.path}\"`\n )\n requestActivity.start()\n try {\n const spanContext = requestActivity.span.context()\n const data = await getData({\n pathName: req.path,\n graphqlEngine,\n req,\n spanContext,\n })\n const results = await renderPageData({ data, spanContext })\n if (data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n if (page.mode === `SSR` && data.serverDataStatus) {\n return void res.status(data.serverDataStatus).send(results)\n } else {\n return void res.send(results)\n }\n } catch (e) {\n report.error(\n `Generating page-data for \"${requestedPagePath}\" / \"${potentialPagePath}\" failed.`,\n e\n )\n return res\n .status(500)\n .contentType(`text/plain`)\n .send(`Internal server error.`)\n } finally {\n requestActivity.end()\n }\n }\n\n return void next()\n }\n )\n\n router.use(async (req, res, next) => {\n if (req.accepts(`html`)) {\n const potentialPagePath = req.path\n const page = graphqlEngine.findPageByPath(potentialPagePath)\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n const requestActivity = report.phantomActivity(\n `request for \"${req.path}\"`\n )\n requestActivity.start()\n\n try {\n const spanContext = requestActivity.span.context()\n const data = await getData({\n pathName: potentialPagePath,\n graphqlEngine,\n req,\n spanContext,\n })\n const results = await renderHTML({ data, spanContext })\n if (data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n if (page.mode === `SSR` && data.serverDataStatus) {\n return void res.status(data.serverDataStatus).send(results)\n } else {\n return void res.send(results)\n }\n } catch (e) {\n report.error(\n `Rendering html for \"${potentialPagePath}\" failed.`,\n e\n )\n return res.status(500).sendFile(`500.html`, { root }, err => {\n if (err) {\n res.contentType(`text/plain`).send(`Internal server error.`)\n }\n })\n } finally {\n requestActivity.end()\n }\n }\n }\n return next()\n })\n } catch (error) {\n report.panic({\n id: `98051`,\n error,\n context: {},\n })\n }\n }\n\n const matchPaths = await readMatchPaths(program)\n router.use(matchPathRouter(matchPaths, { root }))\n\n // TODO: Remove/merge with above same block\n router.use((req, res, next) => {\n if (req.accepts(`html`)) {\n return res.status(404).sendFile(`404.html`, { root })\n }\n return next()\n })\n app.use(function (\n _: express.Request,\n res: express.Response,\n next: express.NextFunction\n ) {\n res.header(`Access-Control-Allow-Origin`, `*`)\n res.header(\n `Access-Control-Allow-Headers`,\n `Origin, X-Requested-With, Content-Type, Accept`\n )\n next()\n })\n app.use(pathPrefix, router)\n\n function printInstructions(appName: string, urls: IPreparedUrls): void {\n console.log()\n console.log(`You can now view ${chalk.bold(appName)} in the browser.`)\n console.log()\n\n if (urls.lanUrlForTerminal) {\n console.log(\n ` ${chalk.bold(`Local:`)} ${urls.localUrlForTerminal}`\n )\n console.log(\n ` ${chalk.bold(`On Your Network:`)} ${urls.lanUrlForTerminal}`\n )\n } else {\n console.log(` ${urls.localUrlForTerminal}`)\n }\n }\n\n const startListening = (): void => {\n app.listen(port, host, () => {\n const urls = prepareUrls(\n program.ssl ? `https` : `http`,\n program.host,\n port\n )\n printInstructions(\n program.sitePackageJson.name || `(Unnamed package)`,\n urls\n )\n if (open) {\n report.info(`Opening browser...`)\n Promise.resolve(openurl(urls.localUrlForBrowser)).catch(() =>\n report.warn(`Browser not opened because no browser was found`)\n )\n }\n })\n }\n\n try {\n port = await detectPortInUseAndPrompt(port, program.host)\n startListening()\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n return\n }\n\n throw e\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serve.js","names":["onExit","telemetry","trackCli","readMatchPaths","program","filePath","path","join","directory","rawJSON","fs","readFile","error","report","warn","chalk","bold","JSON","parse","matchPathRouter","matchPaths","options","req","res","next","url","accepts","matchPath","find","reachMatch","sendFile","err","module","exports","startBackgroundUpdate","initTracer","process","env","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","prefixPaths","port","open","host","parseInt","configModule","getConfigFile","config","preferDefault","pathPrefix","configPathPrefix","trailingSlash","root","app","express","partytownProxiedURLs","use","thirdPartyProxyPath","partytownProxy","router","Router","expressMiddleware","compression","configureTrailingSlash","pages","get","pathName","getDataStore","getNode","values","iterateNodesByType","static","dotfiles","compiledFunctionsDir","functions","readFileSync","e","functionMiddlewaresInstances","functionMiddlewares","getFunctions","graphqlEnginePath","pageSSRModule","require","resolve","posix","slash","GraphQLEngine","getData","renderPageData","renderHTML","findEnginePageByPath","graphqlEngine","dbPath","requestedPagePath","params","pagePath","potentialPagePath","reverseFixedPagePath","page","mode","requestActivity","phantomActivity","start","spanContext","span","context","data","results","serverDataHeaders","name","value","Object","entries","setHeader","serverDataStatus","status","send","contentType","end","panic","id","_","header","printInstructions","appName","urls","console","log","lanUrlForTerminal","localUrlForTerminal","startListening","listen","prepareUrls","ssl","sitePackageJson","info","Promise","openurl","localUrlForBrowser","catch","detectPortInUseAndPrompt","message"],"sources":["../../src/commands/serve.ts"],"sourcesContent":["import path from \"path\"\nimport openurl from \"better-opn\"\nimport fs from \"fs-extra\"\nimport compression from \"compression\"\nimport express from \"express\"\nimport chalk from \"chalk\"\nimport { match as reachMatch } from \"@gatsbyjs/reach-router\"\nimport onExit from \"signal-exit\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport { getConfigFile } from \"../bootstrap/get-config-file\"\nimport { preferDefault } from \"../bootstrap/prefer-default\"\nimport { IProgram } from \"./types\"\nimport { IPreparedUrls, prepareUrls } from \"../utils/prepare-urls\"\nimport {\n IGatsbyConfig,\n IGatsbyFunction,\n IGatsbyPage,\n IGatsbyState,\n} from \"../redux/types\"\nimport { reverseFixedPagePath } from \"../utils/page-data\"\nimport { initTracer } from \"../utils/tracer\"\nimport { configureTrailingSlash } from \"../utils/express-middlewares\"\nimport { getDataStore } from \"../datastore\"\nimport { functionMiddlewares } from \"../internal-plugins/functions/middleware\"\nimport {\n thirdPartyProxyPath,\n partytownProxy,\n} from \"../internal-plugins/partytown/proxy\"\nimport { slash } from \"gatsby-core-utils/path\"\n\ninterface IMatchPath {\n path: string\n matchPath: string\n}\n\ninterface IServeProgram extends IProgram {\n prefixPaths: boolean\n}\n\nonExit(() => {\n telemetry.trackCli(`SERVE_STOP`)\n})\n\nconst readMatchPaths = async (\n program: IServeProgram\n): Promise<Array<IMatchPath>> => {\n const filePath = path.join(program.directory, `.cache`, `match-paths.json`)\n let rawJSON = `[]`\n try {\n rawJSON = await fs.readFile(filePath, `utf8`)\n } catch (error) {\n report.warn(error)\n report.warn(\n `Could not read ${chalk.bold(\n `match-paths.json`\n )} from the .cache directory`\n )\n report.warn(\n `Client-side routing will not work correctly. Maybe you need to re-run ${chalk.bold(\n `gatsby build`\n )}?`\n )\n }\n return JSON.parse(rawJSON) as Array<IMatchPath>\n}\n\nconst matchPathRouter =\n (\n matchPaths: Array<IMatchPath>,\n options: {\n root: string\n }\n ) =>\n (\n req: express.Request,\n res: express.Response,\n next: express.NextFunction\n ): void => {\n const { url } = req\n if (req.accepts(`html`)) {\n const matchPath = matchPaths.find(\n ({ matchPath }) => reachMatch(matchPath, url) !== null\n )\n if (matchPath) {\n return res.sendFile(\n path.join(matchPath.path, `index.html`),\n options,\n err => {\n if (err) {\n next()\n }\n }\n )\n }\n }\n return next()\n }\n\nmodule.exports = async (program: IServeProgram): Promise<void> => {\n telemetry.trackCli(`SERVE_START`)\n telemetry.startBackgroundUpdate()\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n let { prefixPaths, port, open, host } = program\n port = typeof port === `string` ? parseInt(port, 10) : port\n\n const { configModule } = await getConfigFile(\n program.directory,\n `gatsby-config`\n )\n const config: IGatsbyConfig = preferDefault(configModule)\n\n const { pathPrefix: configPathPrefix, trailingSlash } = config || {}\n\n const pathPrefix = prefixPaths && configPathPrefix ? configPathPrefix : `/`\n\n const root = path.join(program.directory, `public`)\n\n const app = express()\n\n // Proxy gatsby-script using off-main-thread strategy\n const { partytownProxiedURLs = [] } = config || {}\n\n app.use(thirdPartyProxyPath, partytownProxy(partytownProxiedURLs))\n\n // eslint-disable-next-line new-cap\n const router = express.Router()\n\n app.use(telemetry.expressMiddleware(`SERVE`))\n\n router.use(compression())\n\n router.use(\n configureTrailingSlash(\n () =>\n ({\n pages: {\n get(pathName: string): IGatsbyPage | undefined {\n return getDataStore().getNode(`SitePage ${pathName}`) as\n | IGatsbyPage\n | undefined\n },\n values(): Iterable<IGatsbyPage> {\n return getDataStore().iterateNodesByType(\n `SitePage`\n ) as Iterable<IGatsbyPage>\n },\n },\n } as unknown as IGatsbyState),\n trailingSlash\n )\n )\n\n router.use(express.static(`public`, { dotfiles: `allow` }))\n\n const compiledFunctionsDir = path.join(\n program.directory,\n `.cache`,\n `functions`\n )\n\n let functions: Array<IGatsbyFunction> = []\n try {\n functions = JSON.parse(\n fs.readFileSync(path.join(compiledFunctionsDir, `manifest.json`), `utf-8`)\n )\n } catch (e) {\n // ignore\n }\n\n if (functions) {\n const functionMiddlewaresInstances = functionMiddlewares({\n getFunctions(): Array<IGatsbyFunction> {\n return functions\n },\n })\n\n router.use(`/api/*`, ...functionMiddlewaresInstances)\n // TODO(v6) remove handler from app and only keep it on router (router is setup on pathPrefix, while app is always root)\n app.use(`/api/*`, ...functionMiddlewaresInstances)\n }\n\n // Handle SSR & DSG Pages\n let graphqlEnginePath: string | undefined\n let pageSSRModule: string | undefined\n try {\n graphqlEnginePath = require.resolve(\n path.posix.join(slash(program.directory), `.cache`, `query-engine`)\n )\n pageSSRModule = require.resolve(\n path.posix.join(slash(program.directory), `.cache`, `page-ssr`)\n )\n } catch (error) {\n // TODO: Handle case of engine not being generated\n }\n\n if (graphqlEnginePath && pageSSRModule) {\n try {\n const { GraphQLEngine } =\n require(graphqlEnginePath) as typeof import(\"../schema/graphql-engine/entry\")\n const { getData, renderPageData, renderHTML, findEnginePageByPath } =\n require(pageSSRModule) as typeof import(\"../utils/page-ssr-module/entry\")\n const graphqlEngine = new GraphQLEngine({\n dbPath: path.posix.join(\n slash(program.directory),\n `.cache`,\n `data`,\n `datastore`\n ),\n })\n\n router.get(\n `/page-data/:pagePath(*)/page-data.json`,\n async (req, res, next) => {\n const requestedPagePath = req.params.pagePath\n if (!requestedPagePath) {\n return void next()\n }\n\n const potentialPagePath = reverseFixedPagePath(requestedPagePath)\n const page = findEnginePageByPath(potentialPagePath)\n\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n const requestActivity = report.phantomActivity(\n `request for \"${req.path}\"`\n )\n requestActivity.start()\n try {\n const spanContext = requestActivity.span.context()\n const data = await getData({\n pathName: req.path,\n graphqlEngine,\n req,\n spanContext,\n })\n const results = await renderPageData({ data, spanContext })\n if (data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n if (page.mode === `SSR` && data.serverDataStatus) {\n return void res.status(data.serverDataStatus).send(results)\n } else {\n return void res.send(results)\n }\n } catch (e) {\n report.error(\n `Generating page-data for \"${requestedPagePath}\" / \"${potentialPagePath}\" failed.`,\n e\n )\n return res\n .status(500)\n .contentType(`text/plain`)\n .send(`Internal server error.`)\n } finally {\n requestActivity.end()\n }\n }\n\n return void next()\n }\n )\n\n router.use(async (req, res, next) => {\n if (req.accepts(`html`)) {\n const potentialPagePath = req.path\n const page = findEnginePageByPath(potentialPagePath)\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n const requestActivity = report.phantomActivity(\n `request for \"${req.path}\"`\n )\n requestActivity.start()\n\n try {\n const spanContext = requestActivity.span.context()\n const data = await getData({\n pathName: potentialPagePath,\n graphqlEngine,\n req,\n spanContext,\n })\n const results = await renderHTML({ data, spanContext })\n if (data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n if (page.mode === `SSR` && data.serverDataStatus) {\n return void res.status(data.serverDataStatus).send(results)\n } else {\n return void res.send(results)\n }\n } catch (e) {\n report.error(\n `Rendering html for \"${potentialPagePath}\" failed.`,\n e\n )\n return res.status(500).sendFile(`500.html`, { root }, err => {\n if (err) {\n res.contentType(`text/plain`).send(`Internal server error.`)\n }\n })\n } finally {\n requestActivity.end()\n }\n }\n }\n return next()\n })\n } catch (error) {\n report.panic({\n id: `98051`,\n error,\n context: {},\n })\n }\n }\n\n const matchPaths = await readMatchPaths(program)\n router.use(matchPathRouter(matchPaths, { root }))\n\n // TODO: Remove/merge with above same block\n router.use((req, res, next) => {\n if (req.accepts(`html`)) {\n return res.status(404).sendFile(`404.html`, { root })\n }\n return next()\n })\n app.use(function (\n _: express.Request,\n res: express.Response,\n next: express.NextFunction\n ) {\n res.header(`Access-Control-Allow-Origin`, `*`)\n res.header(\n `Access-Control-Allow-Headers`,\n `Origin, X-Requested-With, Content-Type, Accept`\n )\n next()\n })\n app.use(pathPrefix, router)\n\n function printInstructions(appName: string, urls: IPreparedUrls): void {\n console.log()\n console.log(`You can now view ${chalk.bold(appName)} in the browser.`)\n console.log()\n\n if (urls.lanUrlForTerminal) {\n console.log(\n ` ${chalk.bold(`Local:`)} ${urls.localUrlForTerminal}`\n )\n console.log(\n ` ${chalk.bold(`On Your Network:`)} ${urls.lanUrlForTerminal}`\n )\n } else {\n console.log(` ${urls.localUrlForTerminal}`)\n }\n }\n\n const startListening = (): void => {\n app.listen(port, host, () => {\n const urls = prepareUrls(\n program.ssl ? `https` : `http`,\n program.host,\n port\n )\n printInstructions(\n program.sitePackageJson.name || `(Unnamed package)`,\n urls\n )\n if (open) {\n report.info(`Opening browser...`)\n Promise.resolve(openurl(urls.localUrlForBrowser)).catch(() =>\n report.warn(`Browser not opened because no browser was found`)\n )\n }\n })\n }\n\n try {\n port = await detectPortInUseAndPrompt(port, program.host)\n startListening()\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n return\n }\n\n throw e\n }\n}\n"],"mappings":"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"}
|
|
@@ -12,6 +12,9 @@ export declare class GraphQLEngine {
|
|
|
12
12
|
private getRunner;
|
|
13
13
|
ready(): Promise<void>;
|
|
14
14
|
runQuery(query: string | Source, context?: Record<string, any>, opts?: IQueryOptions): Promise<ExecutionResult>;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated use findEnginePageByPath exported from page-ssr module instead
|
|
17
|
+
*/
|
|
15
18
|
findPageByPath(pathName: string): IGatsbyPage | undefined;
|
|
16
19
|
}
|
|
17
20
|
declare const _default: {
|
|
@@ -176,6 +176,10 @@ class GraphQLEngine {
|
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* @deprecated use findEnginePageByPath exported from page-ssr module instead
|
|
182
|
+
*/
|
|
179
183
|
findPageByPath(pathName) {
|
|
180
184
|
// adapter so `findPageByPath` use SitePage nodes in datastore
|
|
181
185
|
// instead of `pages` redux slice
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","names":["tracerReadyPromise","initTracer","process","env","GATSBY_OPEN_TRACING_CONFIG_FILE","GraphQLEngine","constructor","dbPath","setupLmdbStore","getRunner","setupPathPrefix","pathPrefix","store","dispatch","type","payload","prefixPaths","getState","config","_doGetRunner","wrapActivity","reporter","phantomActivity","start","PATH_PREFIX","actions","createTypes","SCHEMA_SNAPSHOT","flattenedPlugins","plugin","gatsbyNodes","name","module","importKey","setGatsbyPluginCache","resolve","gatsbyWorkers","apiRunnerNode","parentSpan","span","build","fullMetadataBuild","GraphQLRunner","end","runnerPromise","ready","runQuery","query","context","opts","engineContext","requestId","uuid","v4","doRunQuery","queryName","undefined","gettingRunnerActivity","graphqlRunner","result","waitingForJobsCreatedByCurrentRequestActivity","waitJobsByRequest","runWithEngineContext","findPageByPath","pathName","state","pages","get","getDataStore","getNode","values","iterateNodesByType"],"sources":["../../../src/schema/graphql-engine/entry.ts"],"sourcesContent":["// \"bootstrap\" must be first import, as it sets up multiple globals that need to be set early\n// see details in that module\nimport \"./bootstrap\"\n\nimport { ExecutionResult, Source } from \"graphql\"\nimport { uuid } from \"gatsby-core-utils\"\nimport { build } from \"../index\"\nimport { setupLmdbStore } from \"../../datastore/lmdb/lmdb-datastore\"\nimport { store } from \"../../redux\"\nimport { actions } from \"../../redux/actions\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { GraphQLRunner, IQueryOptions } from \"../../query/graphql-runner\"\nimport { waitJobsByRequest } from \"../../utils/wait-until-jobs-complete\"\nimport { setGatsbyPluginCache } from \"../../utils/import-gatsby-plugin\"\nimport apiRunnerNode from \"../../utils/api-runner-node\"\nimport type { IGatsbyPage, IGatsbyState } from \"../../redux/types\"\nimport { findPageByPath } from \"../../utils/find-page-by-path\"\nimport { runWithEngineContext } from \"../../utils/engine-context\"\nimport { getDataStore } from \"../../datastore\"\nimport {\n gatsbyNodes,\n gatsbyWorkers,\n flattenedPlugins,\n // @ts-ignore\n} from \".cache/query-engine-plugins\"\nimport { initTracer } from \"../../utils/tracer\"\n\ntype MaybePhantomActivity =\n | ReturnType<typeof reporter.phantomActivity>\n | undefined\n\nconst tracerReadyPromise = initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE ?? ``\n)\n\nexport class GraphQLEngine {\n // private schema: GraphQLSchema\n private runnerPromise?: Promise<GraphQLRunner>\n\n constructor({ dbPath }: { dbPath: string }) {\n setupLmdbStore({ dbPath })\n // start initializing runner ASAP\n this.getRunner()\n }\n\n private setupPathPrefix(pathPrefix: string): void {\n if (pathPrefix) {\n store.dispatch({\n type: `SET_PROGRAM`,\n payload: {\n prefixPaths: true,\n },\n })\n\n store.dispatch({\n type: `SET_SITE_CONFIG`,\n payload: {\n ...store.getState().config,\n pathPrefix,\n },\n })\n }\n }\n\n private async _doGetRunner(): Promise<GraphQLRunner> {\n await tracerReadyPromise\n\n const wrapActivity = reporter.phantomActivity(`Initializing GraphQL Engine`)\n wrapActivity.start()\n try {\n // @ts-ignore PATH_PREFIX is being \"inlined\" by bundler\n this.setupPathPrefix(PATH_PREFIX)\n\n // @ts-ignore SCHEMA_SNAPSHOT is being \"inlined\" by bundler\n store.dispatch(actions.createTypes(SCHEMA_SNAPSHOT))\n\n // TODO: FLATTENED_PLUGINS needs to be merged with plugin options from gatsby-config\n // (as there might be non-serializable options, i.e. functions)\n store.dispatch({\n type: `SET_SITE_FLATTENED_PLUGINS`,\n payload: flattenedPlugins,\n })\n\n for (const plugin of gatsbyNodes) {\n const { name, module, importKey } = plugin\n setGatsbyPluginCache(\n { name, resolve: ``, importKey },\n `gatsby-node`,\n module\n )\n }\n for (const plugin of gatsbyWorkers) {\n const { name, module, importKey } = plugin\n setGatsbyPluginCache(\n { name, resolve: ``, importKey },\n `gatsby-worker`,\n module\n )\n }\n\n await apiRunnerNode(`onPluginInit`, { parentSpan: wrapActivity.span })\n await apiRunnerNode(`createSchemaCustomization`, {\n parentSpan: wrapActivity.span,\n })\n\n // Build runs\n // Note: skipping inference metadata because we rely on schema snapshot\n await build({ fullMetadataBuild: false, parentSpan: wrapActivity.span })\n\n return new GraphQLRunner(store)\n } finally {\n wrapActivity.end()\n }\n }\n\n private async getRunner(): Promise<GraphQLRunner> {\n if (!this.runnerPromise) {\n this.runnerPromise = this._doGetRunner()\n }\n return this.runnerPromise\n }\n\n public async ready(): Promise<void> {\n // We don't want to expose internal runner freely. We do expose `runQuery` function already.\n // The way internal runner works can change, so we should not make it a public API.\n // Here we just want to expose way to await it being ready\n await this.getRunner()\n }\n\n public async runQuery(\n query: string | Source,\n context: Record<string, any> = {},\n opts?: IQueryOptions\n ): Promise<ExecutionResult> {\n const engineContext = {\n requestId: uuid.v4(),\n }\n\n const doRunQuery = async (): Promise<ExecutionResult> => {\n if (!opts) {\n opts = {\n queryName: `GraphQL Engine query`,\n parentSpan: undefined,\n }\n }\n\n let gettingRunnerActivity: MaybePhantomActivity\n let graphqlRunner: GraphQLRunner\n try {\n if (opts.parentSpan) {\n gettingRunnerActivity = reporter.phantomActivity(\n `Waiting for graphql runner to init`,\n {\n parentSpan: opts.parentSpan,\n }\n )\n gettingRunnerActivity.start()\n }\n graphqlRunner = await this.getRunner()\n } finally {\n if (gettingRunnerActivity) {\n gettingRunnerActivity.end()\n }\n }\n\n // graphqlRunner creates it's own Span as long as we pass `parentSpan`\n const result = await graphqlRunner.query(query, context, opts)\n\n let waitingForJobsCreatedByCurrentRequestActivity: MaybePhantomActivity\n try {\n if (opts.parentSpan) {\n waitingForJobsCreatedByCurrentRequestActivity =\n reporter.phantomActivity(`Waiting for jobs to finish`, {\n parentSpan: opts.parentSpan,\n })\n waitingForJobsCreatedByCurrentRequestActivity.start()\n }\n await waitJobsByRequest(engineContext.requestId)\n } finally {\n if (waitingForJobsCreatedByCurrentRequestActivity) {\n waitingForJobsCreatedByCurrentRequestActivity.end()\n }\n }\n return result\n }\n\n try {\n return await runWithEngineContext(engineContext, doRunQuery)\n } finally {\n // Reset job-to-request mapping\n store.dispatch({\n type: `CLEAR_JOB_V2_CONTEXT`,\n payload: engineContext,\n })\n }\n }\n\n public findPageByPath(pathName: string): IGatsbyPage | undefined {\n // adapter so `findPageByPath` use SitePage nodes in datastore\n // instead of `pages` redux slice\n const state = {\n pages: {\n get(pathName: string): IGatsbyPage | undefined {\n return getDataStore().getNode(`SitePage ${pathName}`) as\n | IGatsbyPage\n | undefined\n },\n values(): Iterable<IGatsbyPage> {\n return getDataStore().iterateNodesByType(\n `SitePage`\n ) as Iterable<IGatsbyPage>\n },\n },\n } as unknown as IGatsbyState\n\n return findPageByPath(state, pathName, false)\n }\n}\n\nexport default { GraphQLEngine }\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry.js","names":["tracerReadyPromise","initTracer","process","env","GATSBY_OPEN_TRACING_CONFIG_FILE","GraphQLEngine","constructor","dbPath","setupLmdbStore","getRunner","setupPathPrefix","pathPrefix","store","dispatch","type","payload","prefixPaths","getState","config","_doGetRunner","wrapActivity","reporter","phantomActivity","start","PATH_PREFIX","actions","createTypes","SCHEMA_SNAPSHOT","flattenedPlugins","plugin","gatsbyNodes","name","module","importKey","setGatsbyPluginCache","resolve","gatsbyWorkers","apiRunnerNode","parentSpan","span","build","fullMetadataBuild","GraphQLRunner","end","runnerPromise","ready","runQuery","query","context","opts","engineContext","requestId","uuid","v4","doRunQuery","queryName","undefined","gettingRunnerActivity","graphqlRunner","result","waitingForJobsCreatedByCurrentRequestActivity","waitJobsByRequest","runWithEngineContext","findPageByPath","pathName","state","pages","get","getDataStore","getNode","values","iterateNodesByType"],"sources":["../../../src/schema/graphql-engine/entry.ts"],"sourcesContent":["// \"bootstrap\" must be first import, as it sets up multiple globals that need to be set early\n// see details in that module\nimport \"./bootstrap\"\n\nimport { ExecutionResult, Source } from \"graphql\"\nimport { uuid } from \"gatsby-core-utils\"\nimport { build } from \"../index\"\nimport { setupLmdbStore } from \"../../datastore/lmdb/lmdb-datastore\"\nimport { store } from \"../../redux\"\nimport { actions } from \"../../redux/actions\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { GraphQLRunner, IQueryOptions } from \"../../query/graphql-runner\"\nimport { waitJobsByRequest } from \"../../utils/wait-until-jobs-complete\"\nimport { setGatsbyPluginCache } from \"../../utils/import-gatsby-plugin\"\nimport apiRunnerNode from \"../../utils/api-runner-node\"\nimport type { IGatsbyPage, IGatsbyState } from \"../../redux/types\"\nimport { findPageByPath } from \"../../utils/find-page-by-path\"\nimport { runWithEngineContext } from \"../../utils/engine-context\"\nimport { getDataStore } from \"../../datastore\"\nimport {\n gatsbyNodes,\n gatsbyWorkers,\n flattenedPlugins,\n // @ts-ignore\n} from \".cache/query-engine-plugins\"\nimport { initTracer } from \"../../utils/tracer\"\n\ntype MaybePhantomActivity =\n | ReturnType<typeof reporter.phantomActivity>\n | undefined\n\nconst tracerReadyPromise = initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE ?? ``\n)\n\nexport class GraphQLEngine {\n // private schema: GraphQLSchema\n private runnerPromise?: Promise<GraphQLRunner>\n\n constructor({ dbPath }: { dbPath: string }) {\n setupLmdbStore({ dbPath })\n // start initializing runner ASAP\n this.getRunner()\n }\n\n private setupPathPrefix(pathPrefix: string): void {\n if (pathPrefix) {\n store.dispatch({\n type: `SET_PROGRAM`,\n payload: {\n prefixPaths: true,\n },\n })\n\n store.dispatch({\n type: `SET_SITE_CONFIG`,\n payload: {\n ...store.getState().config,\n pathPrefix,\n },\n })\n }\n }\n\n private async _doGetRunner(): Promise<GraphQLRunner> {\n await tracerReadyPromise\n\n const wrapActivity = reporter.phantomActivity(`Initializing GraphQL Engine`)\n wrapActivity.start()\n try {\n // @ts-ignore PATH_PREFIX is being \"inlined\" by bundler\n this.setupPathPrefix(PATH_PREFIX)\n\n // @ts-ignore SCHEMA_SNAPSHOT is being \"inlined\" by bundler\n store.dispatch(actions.createTypes(SCHEMA_SNAPSHOT))\n\n // TODO: FLATTENED_PLUGINS needs to be merged with plugin options from gatsby-config\n // (as there might be non-serializable options, i.e. functions)\n store.dispatch({\n type: `SET_SITE_FLATTENED_PLUGINS`,\n payload: flattenedPlugins,\n })\n\n for (const plugin of gatsbyNodes) {\n const { name, module, importKey } = plugin\n setGatsbyPluginCache(\n { name, resolve: ``, importKey },\n `gatsby-node`,\n module\n )\n }\n for (const plugin of gatsbyWorkers) {\n const { name, module, importKey } = plugin\n setGatsbyPluginCache(\n { name, resolve: ``, importKey },\n `gatsby-worker`,\n module\n )\n }\n\n await apiRunnerNode(`onPluginInit`, { parentSpan: wrapActivity.span })\n await apiRunnerNode(`createSchemaCustomization`, {\n parentSpan: wrapActivity.span,\n })\n\n // Build runs\n // Note: skipping inference metadata because we rely on schema snapshot\n await build({ fullMetadataBuild: false, parentSpan: wrapActivity.span })\n\n return new GraphQLRunner(store)\n } finally {\n wrapActivity.end()\n }\n }\n\n private async getRunner(): Promise<GraphQLRunner> {\n if (!this.runnerPromise) {\n this.runnerPromise = this._doGetRunner()\n }\n return this.runnerPromise\n }\n\n public async ready(): Promise<void> {\n // We don't want to expose internal runner freely. We do expose `runQuery` function already.\n // The way internal runner works can change, so we should not make it a public API.\n // Here we just want to expose way to await it being ready\n await this.getRunner()\n }\n\n public async runQuery(\n query: string | Source,\n context: Record<string, any> = {},\n opts?: IQueryOptions\n ): Promise<ExecutionResult> {\n const engineContext = {\n requestId: uuid.v4(),\n }\n\n const doRunQuery = async (): Promise<ExecutionResult> => {\n if (!opts) {\n opts = {\n queryName: `GraphQL Engine query`,\n parentSpan: undefined,\n }\n }\n\n let gettingRunnerActivity: MaybePhantomActivity\n let graphqlRunner: GraphQLRunner\n try {\n if (opts.parentSpan) {\n gettingRunnerActivity = reporter.phantomActivity(\n `Waiting for graphql runner to init`,\n {\n parentSpan: opts.parentSpan,\n }\n )\n gettingRunnerActivity.start()\n }\n graphqlRunner = await this.getRunner()\n } finally {\n if (gettingRunnerActivity) {\n gettingRunnerActivity.end()\n }\n }\n\n // graphqlRunner creates it's own Span as long as we pass `parentSpan`\n const result = await graphqlRunner.query(query, context, opts)\n\n let waitingForJobsCreatedByCurrentRequestActivity: MaybePhantomActivity\n try {\n if (opts.parentSpan) {\n waitingForJobsCreatedByCurrentRequestActivity =\n reporter.phantomActivity(`Waiting for jobs to finish`, {\n parentSpan: opts.parentSpan,\n })\n waitingForJobsCreatedByCurrentRequestActivity.start()\n }\n await waitJobsByRequest(engineContext.requestId)\n } finally {\n if (waitingForJobsCreatedByCurrentRequestActivity) {\n waitingForJobsCreatedByCurrentRequestActivity.end()\n }\n }\n return result\n }\n\n try {\n return await runWithEngineContext(engineContext, doRunQuery)\n } finally {\n // Reset job-to-request mapping\n store.dispatch({\n type: `CLEAR_JOB_V2_CONTEXT`,\n payload: engineContext,\n })\n }\n }\n\n /**\n * @deprecated use findEnginePageByPath exported from page-ssr module instead\n */\n public findPageByPath(pathName: string): IGatsbyPage | undefined {\n // adapter so `findPageByPath` use SitePage nodes in datastore\n // instead of `pages` redux slice\n const state = {\n pages: {\n get(pathName: string): IGatsbyPage | undefined {\n return getDataStore().getNode(`SitePage ${pathName}`) as\n | IGatsbyPage\n | undefined\n },\n values(): Iterable<IGatsbyPage> {\n return getDataStore().iterateNodesByType(\n `SitePage`\n ) as Iterable<IGatsbyPage>\n },\n },\n } as unknown as IGatsbyState\n\n return findPageByPath(state, pathName, false)\n }\n}\n\nexport default { GraphQLEngine }\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IHeader } from "../../redux/types";
|
|
2
2
|
type Headers = IHeader["headers"];
|
|
3
|
-
export declare const createHeadersMatcher: (headers: Array<IHeader> | undefined) => (path: string, defaultHeaders: {
|
|
3
|
+
export declare const createHeadersMatcher: (headers: Array<IHeader> | undefined, pathPrefix: string) => (path: string, defaultHeaders: {
|
|
4
4
|
key: string;
|
|
5
5
|
value: string;
|
|
6
6
|
}[]) => {
|
|
@@ -6,7 +6,14 @@ var _reachRouter = require("@gatsbyjs/reach-router");
|
|
|
6
6
|
var _rankRoute = require("../rank-route");
|
|
7
7
|
// We don't care if the path has a trailing slash or not, but to be able to compare stuff we need to normalize it
|
|
8
8
|
const normalizePath = input => input.endsWith(`/`) ? input : `${input}/`;
|
|
9
|
-
const createHeadersMatcher = headers => {
|
|
9
|
+
const createHeadersMatcher = (headers, pathPrefix) => {
|
|
10
|
+
function stripPathPrefix(path) {
|
|
11
|
+
if (pathPrefix && path.startsWith(pathPrefix)) {
|
|
12
|
+
path = path.slice(pathPrefix.length);
|
|
13
|
+
}
|
|
14
|
+
return path;
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
// Split the incoming user headers into two buckets:
|
|
11
18
|
// - dynamicHeaders: Headers with dynamic paths (e.g. /* or /:tests)
|
|
12
19
|
// - staticHeaders: Headers with fully static paths (e.g. /static/)
|
|
@@ -19,15 +26,20 @@ const createHeadersMatcher = headers => {
|
|
|
19
26
|
return (_path, defaultHeaders) => defaultHeaders;
|
|
20
27
|
}
|
|
21
28
|
for (const header of headers) {
|
|
22
|
-
|
|
29
|
+
const source = stripPathPrefix(header.source);
|
|
30
|
+
if (source.includes(`:`) || source.includes(`*`)) {
|
|
23
31
|
// rankRoute is the internal function that also "match" uses
|
|
24
|
-
const score = (0, _rankRoute.rankRoute)(
|
|
32
|
+
const score = (0, _rankRoute.rankRoute)(source);
|
|
25
33
|
dynamicHeaders.push({
|
|
26
34
|
...header,
|
|
27
|
-
score
|
|
35
|
+
score,
|
|
36
|
+
source
|
|
28
37
|
});
|
|
29
38
|
} else {
|
|
30
|
-
staticHeaders.set(normalizePath(
|
|
39
|
+
staticHeaders.set(normalizePath(source), {
|
|
40
|
+
...header,
|
|
41
|
+
source
|
|
42
|
+
});
|
|
31
43
|
}
|
|
32
44
|
}
|
|
33
45
|
|
|
@@ -41,6 +53,8 @@ const createHeadersMatcher = headers => {
|
|
|
41
53
|
return a.source.localeCompare(b.source);
|
|
42
54
|
});
|
|
43
55
|
return (path, defaultHeaders) => {
|
|
56
|
+
path = stripPathPrefix(path);
|
|
57
|
+
|
|
44
58
|
// Create a map of headers for the given path
|
|
45
59
|
// The key will be the header key. Since a key may only appear once in a map, the last header with the same key will win
|
|
46
60
|
const uniqueHeaders = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-headers.js","names":["normalizePath","input","endsWith","createHeadersMatcher","headers","
|
|
1
|
+
{"version":3,"file":"create-headers.js","names":["normalizePath","input","endsWith","createHeadersMatcher","headers","pathPrefix","stripPathPrefix","path","startsWith","slice","length","dynamicHeaders","staticHeaders","Map","_path","defaultHeaders","header","source","includes","score","rankRoute","push","set","sort","a","b","order","localeCompare","uniqueHeaders","h","key","value","d","match","staticEntry","get","Array","from","entries","map"],"sources":["../../../src/utils/adapter/create-headers.ts"],"sourcesContent":["import { match } from \"@gatsbyjs/reach-router\"\nimport type { IHeader } from \"../../redux/types\"\nimport { rankRoute } from \"../rank-route\"\n\ntype Headers = IHeader[\"headers\"]\ninterface IHeaderWithScore extends IHeader {\n score: number\n}\n\n// We don't care if the path has a trailing slash or not, but to be able to compare stuff we need to normalize it\nconst normalizePath = (input: string): string =>\n input.endsWith(`/`) ? input : `${input}/`\n\nexport const createHeadersMatcher = (\n headers: Array<IHeader> | undefined,\n pathPrefix: string\n): ((path: string, defaultHeaders: Headers) => Headers) => {\n function stripPathPrefix(path: string): string {\n if (pathPrefix && path.startsWith(pathPrefix)) {\n path = path.slice(pathPrefix.length)\n }\n\n return path\n }\n\n // Split the incoming user headers into two buckets:\n // - dynamicHeaders: Headers with dynamic paths (e.g. /* or /:tests)\n // - staticHeaders: Headers with fully static paths (e.g. /static/)\n // Also add a score using the rankRoute function to each header\n let dynamicHeaders: Array<IHeaderWithScore> = []\n const staticHeaders: Map<string, IHeader> = new Map()\n\n // If no custom headers are defined by the user in the gatsby-config, we can return only the default headers\n if (!headers || headers.length === 0) {\n return (_path: string, defaultHeaders: Headers) => defaultHeaders\n }\n\n for (const header of headers) {\n const source = stripPathPrefix(header.source)\n if (source.includes(`:`) || source.includes(`*`)) {\n // rankRoute is the internal function that also \"match\" uses\n const score = rankRoute(source)\n\n dynamicHeaders.push({\n ...header,\n score,\n source,\n })\n } else {\n staticHeaders.set(normalizePath(source), {\n ...header,\n source,\n })\n }\n }\n\n // Sort the dynamic headers by score, moving the ones with the highest specificity to the end of the array\n // If the score is the same, do a lexigraphic comparison of the source\n dynamicHeaders = dynamicHeaders.sort((a, b) => {\n const order = a.score - b.score\n if (order !== 0) {\n return order\n }\n return a.source.localeCompare(b.source)\n })\n\n return (path: string, defaultHeaders: Headers): Headers => {\n path = stripPathPrefix(path)\n\n // Create a map of headers for the given path\n // The key will be the header key. Since a key may only appear once in a map, the last header with the same key will win\n const uniqueHeaders: Map<string, string> = new Map()\n\n // 1. Add default headers\n for (const h of defaultHeaders) {\n uniqueHeaders.set(h.key, h.value)\n }\n\n // 2. Add dynamic headers that match the current path\n for (const d of dynamicHeaders) {\n if (match(d.source, path)) {\n for (const h of d.headers) {\n uniqueHeaders.set(h.key, h.value)\n }\n }\n }\n\n const staticEntry = staticHeaders.get(normalizePath(path))\n\n // 3. Add static headers that match the current path\n if (staticEntry) {\n for (const h of staticEntry.headers) {\n uniqueHeaders.set(h.key, h.value)\n }\n }\n\n // Convert the map back to an array of objects\n return Array.from(uniqueHeaders.entries()).map(([key, value]) => {\n return {\n key,\n value,\n }\n })\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { IGatsbyFunction, IGatsbyPage } from "../../redux/types";
|
|
2
|
-
export declare function getRoutePathFromPage(page: IGatsbyPage): string;
|
|
2
|
+
export declare function getRoutePathFromPage(page: Pick<IGatsbyPage, "path" | "matchPath">): string;
|
|
3
3
|
export declare function getRoutePathFromFunction(functionInfo: IGatsbyFunction): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-route-path.js","names":["maybeDropNamedPartOfWildcard","path","replace","getRoutePathFromPage","page","matchPath","getRoutePathFromFunction","functionInfo","functionRoute"],"sources":["../../../src/utils/adapter/get-route-path.ts"],"sourcesContent":["import type { IGatsbyFunction, IGatsbyPage } from \"../../redux/types\"\n\nfunction maybeDropNamedPartOfWildcard(\n path: string | undefined\n): string | undefined {\n if (!path) {\n return path\n }\n\n // Replaces `/foo/*bar` with `/foo/*`\n return path.replace(/\\*.+$/, `*`)\n}\n\nexport function getRoutePathFromPage(page: IGatsbyPage): string {\n return maybeDropNamedPartOfWildcard(page.matchPath) ?? page.path\n}\n\nexport function getRoutePathFromFunction(\n functionInfo: IGatsbyFunction\n): string {\n return (\n maybeDropNamedPartOfWildcard(functionInfo.matchPath) ??\n functionInfo.functionRoute\n )\n}\n"],"mappings":";;;;;AAEA,SAASA,4BAA4B,CACnCC,IAAwB,EACJ;EACpB,IAAI,CAACA,IAAI,EAAE;IACT,OAAOA,IAAI;EACb;;EAEA;EACA,OAAOA,IAAI,CAACC,OAAO,CAAC,OAAO,EAAG,GAAE,CAAC;AACnC;AAEO,SAASC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"get-route-path.js","names":["maybeDropNamedPartOfWildcard","path","replace","getRoutePathFromPage","page","matchPath","getRoutePathFromFunction","functionInfo","functionRoute"],"sources":["../../../src/utils/adapter/get-route-path.ts"],"sourcesContent":["import type { IGatsbyFunction, IGatsbyPage } from \"../../redux/types\"\n\nfunction maybeDropNamedPartOfWildcard(\n path: string | undefined\n): string | undefined {\n if (!path) {\n return path\n }\n\n // Replaces `/foo/*bar` with `/foo/*`\n return path.replace(/\\*.+$/, `*`)\n}\n\nexport function getRoutePathFromPage(\n page: Pick<IGatsbyPage, \"path\" | \"matchPath\">\n): string {\n return maybeDropNamedPartOfWildcard(page.matchPath) ?? page.path\n}\n\nexport function getRoutePathFromFunction(\n functionInfo: IGatsbyFunction\n): string {\n return (\n maybeDropNamedPartOfWildcard(functionInfo.matchPath) ??\n functionInfo.functionRoute\n )\n}\n"],"mappings":";;;;;AAEA,SAASA,4BAA4B,CACnCC,IAAwB,EACJ;EACpB,IAAI,CAACA,IAAI,EAAE;IACT,OAAOA,IAAI;EACb;;EAEA;EACA,OAAOA,IAAI,CAACC,OAAO,CAAC,OAAO,EAAG,GAAE,CAAC;AACnC;AAEO,SAASC,oBAAoB,CAClCC,IAA6C,EACrC;EAAA;EACR,gCAAOJ,4BAA4B,CAACI,IAAI,CAACC,SAAS,CAAC,yEAAID,IAAI,CAACH,IAAI;AAClE;AAEO,SAASK,wBAAwB,CACtCC,YAA6B,EACrB;EAAA;EACR,iCACEP,4BAA4B,CAACO,YAAY,CAACF,SAAS,CAAC,2EACpDE,YAAY,CAACC,aAAa;AAE9B"}
|