gatsby 4.0.1 → 4.1.0-next.2
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/CHANGELOG.md +0 -21
- package/cache-dir/api-ssr-docs.js +2 -0
- package/cache-dir/commonjs/api-ssr-docs.js +2 -0
- package/dist/commands/build.js +17 -2
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/develop-process.js +1 -1
- package/dist/commands/develop-process.js.map +1 -1
- package/dist/commands/serve.js +25 -4
- package/dist/commands/serve.js.map +1 -1
- package/dist/query/file-parser.js +34 -10
- package/dist/query/file-parser.js.map +1 -1
- package/dist/query/graphql-runner.d.ts +9 -5
- package/dist/query/graphql-runner.js +6 -3
- package/dist/query/graphql-runner.js.map +1 -1
- package/dist/query/query-compiler.js +15 -5
- package/dist/query/query-compiler.js.map +1 -1
- package/dist/redux/actions/public.js +1 -0
- package/dist/redux/actions/public.js.map +1 -1
- package/dist/redux/reducers/components.js +4 -2
- package/dist/redux/reducers/components.js.map +1 -1
- package/dist/redux/types.d.ts +2 -0
- package/dist/redux/types.js.map +1 -1
- package/dist/schema/context.d.ts +3 -2
- package/dist/schema/context.js +4 -2
- package/dist/schema/context.js.map +1 -1
- package/dist/schema/graphql-engine/bundle-webpack.js +9 -0
- package/dist/schema/graphql-engine/bundle-webpack.js.map +1 -1
- package/dist/schema/graphql-engine/entry.d.ts +2 -1
- package/dist/schema/graphql-engine/entry.js +55 -9
- package/dist/schema/graphql-engine/entry.js.map +1 -1
- package/dist/schema/node-model.js +2 -2
- package/dist/schema/node-model.js.map +1 -1
- package/dist/schema/resolvers.js +21 -2
- package/dist/schema/resolvers.js.map +1 -1
- package/dist/schema/schema.js +2 -1
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/type-definitions.d.ts +5 -0
- package/dist/utils/babel-loader-helpers.js +1 -1
- package/dist/utils/babel-loader-helpers.js.map +1 -1
- package/dist/utils/engines-helpers.js +2 -1
- package/dist/utils/engines-helpers.js.map +1 -1
- package/dist/utils/get-server-data.d.ts +1 -0
- package/dist/utils/get-server-data.js +5 -1
- package/dist/utils/get-server-data.js.map +1 -1
- package/dist/utils/node-manifest.js +2 -3
- package/dist/utils/node-manifest.js.map +1 -1
- package/dist/utils/page-mode.d.ts +2 -0
- package/dist/utils/page-mode.js +59 -15
- package/dist/utils/page-mode.js.map +1 -1
- package/dist/utils/page-ssr-module/bundle-webpack.js +9 -0
- package/dist/utils/page-ssr-module/bundle-webpack.js.map +1 -1
- package/dist/utils/page-ssr-module/entry.d.ts +9 -3
- package/dist/utils/page-ssr-module/entry.js +228 -83
- package/dist/utils/page-ssr-module/entry.js.map +1 -1
- package/dist/utils/tracer/index.d.ts +1 -1
- package/dist/utils/tracer/index.js +3 -2
- package/dist/utils/tracer/index.js.map +1 -1
- package/dist/utils/validate-engines/index.js +7 -1
- package/dist/utils/validate-engines/index.js.map +1 -1
- package/index.d.ts +9 -7
- package/package.json +16 -16
package/CHANGELOG.md
CHANGED
|
@@ -3,27 +3,6 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
### [4.0.1](https://github.com/gatsbyjs/gatsby/commits/HEAD/packages/gatsby) (2021-10-25)
|
|
7
|
-
|
|
8
|
-
#### Bug Fixes
|
|
9
|
-
|
|
10
|
-
- reset jobs cache when its outdated [#33617](https://github.com/gatsbyjs/gatsby/issues/33617) [#33660](https://github.com/gatsbyjs/gatsby/issues/33660) ([42358ee](https://github.com/gatsbyjs/gatsby/commit/42358ee71bb88fb6c6d0a721a3e0fe54f9a60fd5))
|
|
11
|
-
- pageContext should proxy to page.context [#33627](https://github.com/gatsbyjs/gatsby/issues/33627) [#33661](https://github.com/gatsbyjs/gatsby/issues/33661) ([8c99000](https://github.com/gatsbyjs/gatsby/commit/8c99000646b29688b235408b4400d9e54c9d3f5f))
|
|
12
|
-
|
|
13
|
-
#### Chores
|
|
14
|
-
|
|
15
|
-
- Update README [#33615](https://github.com/gatsbyjs/gatsby/issues/33615) ([0790895](https://github.com/gatsbyjs/gatsby/commit/079089523b9cb4bf4c112deb71b7ef1d175ab1c6))
|
|
16
|
-
- Change comment format in actions/public [#33592](https://github.com/gatsbyjs/gatsby/issues/33592) ([06760d7](https://github.com/gatsbyjs/gatsby/commit/06760d7801d1b1da4cfdb4925ff33bd086a75c0c))
|
|
17
|
-
|
|
18
|
-
## [4.0.0](https://github.com/gatsbyjs/gatsby/commits/HEAD/packages/gatsby) (2021-10-21)
|
|
19
|
-
|
|
20
|
-
[🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v4.0)
|
|
21
|
-
|
|
22
|
-
#### Chores
|
|
23
|
-
|
|
24
|
-
- Update README [#33615](https://github.com/gatsbyjs/gatsby/issues/33615) ([0790895](https://github.com/gatsbyjs/gatsby/commit/079089523b9cb4bf4c112deb71b7ef1d175ab1c6))
|
|
25
|
-
- Change comment format in actions/public [#33592](https://github.com/gatsbyjs/gatsby/issues/33592) ([06760d7](https://github.com/gatsbyjs/gatsby/commit/06760d7801d1b1da4cfdb4925ff33bd086a75c0c))
|
|
26
|
-
|
|
27
6
|
### [3.14.2](https://github.com/gatsbyjs/gatsby/commits/gatsby@3.14.2/packages/gatsby) (2021-10-06)
|
|
28
7
|
|
|
29
8
|
#### Features
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* @param {function} $0.setBodyProps Takes an object of data which
|
|
30
30
|
* is merged with other body props and passed to `html.js` as `bodyProps`.
|
|
31
31
|
* @param {pluginOptions} pluginOptions
|
|
32
|
+
* @returns {void | Promise<void>}
|
|
32
33
|
* @example
|
|
33
34
|
* // From gatsby-plugin-glamor
|
|
34
35
|
* const { renderToString } = require("react-dom/server")
|
|
@@ -184,6 +185,7 @@ exports.wrapPageElement = true
|
|
|
184
185
|
* It is recommended to use both APIs together.
|
|
185
186
|
* For example usage, check out [Using redux](https://github.com/gatsbyjs/gatsby/tree/master/examples/using-redux).
|
|
186
187
|
* @param {object} $0
|
|
188
|
+
* @param {string} $0.pathname The pathname of the page currently being rendered.
|
|
187
189
|
* @param {ReactNode} $0.element The "Root" React Element built by Gatsby.
|
|
188
190
|
* @param {pluginOptions} pluginOptions
|
|
189
191
|
* @returns {ReactNode} Wrapped element
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
* @param {function} $0.setBodyProps Takes an object of data which
|
|
32
32
|
* is merged with other body props and passed to `html.js` as `bodyProps`.
|
|
33
33
|
* @param {pluginOptions} pluginOptions
|
|
34
|
+
* @returns {void | Promise<void>}
|
|
34
35
|
* @example
|
|
35
36
|
* // From gatsby-plugin-glamor
|
|
36
37
|
* const { renderToString } = require("react-dom/server")
|
|
@@ -185,6 +186,7 @@ exports.wrapPageElement = true;
|
|
|
185
186
|
* It is recommended to use both APIs together.
|
|
186
187
|
* For example usage, check out [Using redux](https://github.com/gatsbyjs/gatsby/tree/master/examples/using-redux).
|
|
187
188
|
* @param {object} $0
|
|
189
|
+
* @param {string} $0.pathname The pathname of the page currently being rendered.
|
|
188
190
|
* @param {ReactNode} $0.element The "Root" React Element built by Gatsby.
|
|
189
191
|
* @param {pluginOptions} pluginOptions
|
|
190
192
|
* @returns {ReactNode} Wrapped element
|
package/dist/commands/build.js
CHANGED
|
@@ -95,7 +95,7 @@ module.exports = async function build(program) {
|
|
|
95
95
|
|
|
96
96
|
const publicDir = _path.default.join(program.directory, `public`);
|
|
97
97
|
|
|
98
|
-
(0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
|
|
98
|
+
await (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
|
|
99
99
|
|
|
100
100
|
const buildActivity = _reporter.default.phantomActivity(`build`);
|
|
101
101
|
|
|
@@ -211,6 +211,21 @@ module.exports = async function build(program) {
|
|
|
211
211
|
buildActivityTimer.panic((0, _webpackErrorUtils.structureWebpackErrors)(_types.Stage.BuildHTML, err));
|
|
212
212
|
} finally {
|
|
213
213
|
buildSSRBundleActivityProgress.end();
|
|
214
|
+
} // exec outer config function for each template
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
const pageConfigActivity = _reporter.default.activityTimer(`Execute page configs`, {
|
|
218
|
+
parentSpan: buildSpan
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
pageConfigActivity.start();
|
|
222
|
+
|
|
223
|
+
try {
|
|
224
|
+
await (0, _pageMode.preparePageTemplateConfigs)(gatsbyNodeGraphQLFunction);
|
|
225
|
+
} catch (err) {
|
|
226
|
+
_reporter.default.panic(err);
|
|
227
|
+
} finally {
|
|
228
|
+
pageConfigActivity.end();
|
|
214
229
|
}
|
|
215
230
|
|
|
216
231
|
if ("4" === `4` && (0, _enginesHelpers.shouldGenerateEngines)()) {
|
|
@@ -296,7 +311,7 @@ module.exports = async function build(program) {
|
|
|
296
311
|
});
|
|
297
312
|
}
|
|
298
313
|
|
|
299
|
-
if (process.send) {
|
|
314
|
+
if (process.send && (0, _enginesHelpers.shouldGenerateEngines)()) {
|
|
300
315
|
process.send({
|
|
301
316
|
type: `LOG_ACTION`,
|
|
302
317
|
action: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/build.ts"],"names":["module","exports","build","program","global","__GATSBY","buildId","uuid","v4","root","directory","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","lastRun","Date","now","pid","publicDir","path","join","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","workerPool","parentSpan","graphql","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","hasWarnings","rawMessages","toJson","all","warnings","assets","cachedAssets","hash","err","panic","Stage","BuildJavascript","end","state","getState","push","rootDir","components","staticQueriesByTemplate","reporter","isVerbose","Promise","buildSSRBundleActivityProgress","BuildHTML","validateEnginesActivity","error","id","context","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","waitForWorkerPoolRestart","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","restart","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","html","ssrCompilationHash","isTrackingEnabled","bundleSizes","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","waitMaterializePageMode","toRegenerate","toDelete","waitWorkerPoolEnd","SSGCount","DSGCount","SSRCount","page","pages","mode","pagesCount","length","totalPagesCount","postBuildActivityTimer","e","message","_renderPageTree","functions","info","uptime","finish","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","writeFile"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\nimport { updateSiteMetadata, isTruthy, uuid } from \"gatsby-core-utils\"\nimport {\n buildRenderer,\n buildHTMLPagesAndDeleteStaleArtifacts,\n IBuildArgs,\n} from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport * as db from \"../redux/save-state\"\nimport { store } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport {\n structureWebpackErrors,\n reportWebpackWarnings,\n} from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { actions } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { Stage } from \"./types\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { showExperimentNotices } from \"../utils/show-experiment-notice\"\nimport {\n mergeWorkerState,\n runQueriesInWorkersQueue,\n} from \"../utils/worker/pool\"\nimport { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport {\n createPageSSRBundle,\n writeQueryContext,\n} from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport type webpack from \"webpack\"\nimport { materializePageMode, getPageMode } from \"../utils/page-mode\"\nimport { validateEngines } from \"../utils/validate-engines\"\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\n // global gatsby object to use without store\n global.__GATSBY = {\n buildId: uuid.v4(),\n root: program!.directory,\n }\n\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, {\n exitCode: exitCode as number | undefined,\n })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction, workerPool } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // writes sync and async require files to disk\n // used inside routing \"html\" + \"javascript\"\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n let closeJavascriptBundleCompilation: (() => Promise<void>) | undefined\n let closeHTMLBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n\n const engineBundlingPromises: Array<Promise<any>> = []\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n\n try {\n const { stats, close } = await buildProductionBundle(\n program,\n buildActivityTimer.span\n )\n closeJavascriptBundleCompilation = close\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ all: false, warnings: true })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n\n webpackAssets = stats.toJson({\n all: false,\n assets: true,\n cachedAssets: true,\n }).assets as Array<webpack.StatsAsset>\n webpackCompilationHash = stats.hash as string\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const state = store.getState()\n const buildActivityTimer = report.activityTimer(\n `Building Rendering Engines`,\n { parentSpan: buildSpan }\n )\n try {\n buildActivityTimer.start()\n // bundle graphql-engine\n engineBundlingPromises.push(\n createGraphqlEngineBundle(program.directory, report, program.verbose)\n )\n\n engineBundlingPromises.push(\n createPageSSRBundle({\n rootDir: program.directory,\n components: state.components,\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n reporter: report,\n isVerbose: program.verbose,\n })\n )\n await Promise.all(engineBundlingPromises)\n } catch (err) {\n reporter.panic(err)\n } finally {\n buildActivityTimer.end()\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n try {\n const { close, stats } = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n\n closeHTMLBundleCompilation = close\n webpackSSRCompilationHash = stats.hash as string\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const validateEnginesActivity = report.activityTimer(\n `Validating Rendering Engines`,\n {\n parentSpan: buildSpan,\n }\n )\n validateEnginesActivity.start()\n try {\n await validateEngines(store.getState().program.directory)\n } catch (error) {\n validateEnginesActivity.panic({ id: `98001`, context: {}, error })\n } finally {\n validateEnginesActivity.end()\n }\n }\n\n const cacheActivity = report.activityTimer(`Caching Webpack compilations`, {\n parentSpan: buildSpan,\n })\n try {\n cacheActivity.start()\n await Promise.all([\n closeJavascriptBundleCompilation?.(),\n closeHTMLBundleCompilation?.(),\n ])\n } finally {\n cacheActivity.end()\n }\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n // Only run queries with mode SSG\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => getPageMode(query) === `SSG`\n )\n }\n\n let waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds, {\n parentSpan: buildSpan,\n })\n // Jobs still might be running even though query running finished\n await waitUntilAllJobsComplete()\n // Restart worker pool before merging state to lower memory pressure while merging state\n waitForWorkerPoolRestart = workerPool.restart()\n await mergeWorkerState(workerPool, buildSpan)\n } else {\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n await writeQueryContext({\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n components: state.components,\n })\n }\n\n if (process.send) {\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n if (\n webpackCompilationHash !== state.webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash as string)\n\n rewriteActivityTimer.end()\n }\n\n if (state.html.ssrCompilationHash !== webpackSSRCompilationHash) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: webpackSSRCompilationHash,\n })\n }\n }\n\n await flushPendingPageDataWrites(buildSpan)\n markWebpackStatusAsDone()\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = (webpackAssets as Array<webpack.StatsAsset>)\n .filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n store.dispatch(actions.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`))\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // well, tbf we should just generate this in `.cache` and avoid deleting it :shrug:\n program.keepPageRenderer = true\n }\n\n await waitForWorkerPoolRestart\n\n // Start saving page.mode in the main process (while HTML is generated in workers in parallel)\n const waitMaterializePageMode = materializePageMode()\n\n const { toRegenerate, toDelete } =\n await buildHTMLPagesAndDeleteStaleArtifacts({\n program,\n workerPool,\n buildSpan,\n })\n\n await waitMaterializePageMode\n const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: toRegenerate.length, // number of html files that will be written\n totalPagesCount: store.getState().pages.size, // total number of pages\n SSRCount,\n DSGCount,\n SSGCount,\n })\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: postBuildActivityTimer.span,\n })\n postBuildActivityTimer.end()\n\n // Wait for any jobs that were started in onPostBuild\n // This could occur due to queries being run which invoke sharp for instance\n await waitUntilAllJobsComplete()\n\n try {\n await waitWorkerPoolEnd\n } catch (e) {\n report.warn(`Error when closing WorkerPool: ${e.message}`)\n }\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n const state = store.getState()\n reporter._renderPageTree({\n components: state.components,\n functions: state.functions,\n pages: state.pages,\n root: state.program.directory,\n })\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n buildActivity.end()\n\n if (program.logPages) {\n if (toRegenerate.length) {\n report.info(\n `Built pages:\\n${toRegenerate\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (toDelete.length) {\n report.info(\n `Deleted pages:\\n${toDelete\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (program.writeToFile) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = toRegenerate.length\n ? `${toRegenerate.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = toDelete.length\n ? `${toDelete.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/commands/build.ts"],"names":["module","exports","build","program","global","__GATSBY","buildId","uuid","v4","root","directory","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","lastRun","Date","now","pid","publicDir","path","join","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","workerPool","parentSpan","graphql","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","hasWarnings","rawMessages","toJson","all","warnings","assets","cachedAssets","hash","err","panic","Stage","BuildJavascript","end","state","getState","push","rootDir","components","staticQueriesByTemplate","reporter","isVerbose","Promise","buildSSRBundleActivityProgress","BuildHTML","pageConfigActivity","validateEnginesActivity","error","id","context","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","waitForWorkerPoolRestart","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","restart","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","html","ssrCompilationHash","isTrackingEnabled","bundleSizes","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","waitMaterializePageMode","toRegenerate","toDelete","waitWorkerPoolEnd","SSGCount","DSGCount","SSRCount","page","pages","mode","pagesCount","length","totalPagesCount","postBuildActivityTimer","e","message","_renderPageTree","functions","info","uptime","finish","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","writeFile"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\nimport { updateSiteMetadata, isTruthy, uuid } from \"gatsby-core-utils\"\nimport {\n buildRenderer,\n buildHTMLPagesAndDeleteStaleArtifacts,\n IBuildArgs,\n} from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport * as db from \"../redux/save-state\"\nimport { store } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport {\n structureWebpackErrors,\n reportWebpackWarnings,\n} from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { actions } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { Stage } from \"./types\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { showExperimentNotices } from \"../utils/show-experiment-notice\"\nimport {\n mergeWorkerState,\n runQueriesInWorkersQueue,\n} from \"../utils/worker/pool\"\nimport { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport {\n createPageSSRBundle,\n writeQueryContext,\n} from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport type webpack from \"webpack\"\nimport {\n materializePageMode,\n getPageMode,\n preparePageTemplateConfigs,\n} from \"../utils/page-mode\"\nimport { validateEngines } from \"../utils/validate-engines\"\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\n // global gatsby object to use without store\n global.__GATSBY = {\n buildId: uuid.v4(),\n root: program!.directory,\n }\n\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, {\n exitCode: exitCode as number | undefined,\n })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction, workerPool } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // writes sync and async require files to disk\n // used inside routing \"html\" + \"javascript\"\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n let closeJavascriptBundleCompilation: (() => Promise<void>) | undefined\n let closeHTMLBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n\n const engineBundlingPromises: Array<Promise<any>> = []\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n\n try {\n const { stats, close } = await buildProductionBundle(\n program,\n buildActivityTimer.span\n )\n closeJavascriptBundleCompilation = close\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ all: false, warnings: true })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n\n webpackAssets = stats.toJson({\n all: false,\n assets: true,\n cachedAssets: true,\n }).assets as Array<webpack.StatsAsset>\n webpackCompilationHash = stats.hash as string\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const state = store.getState()\n const buildActivityTimer = report.activityTimer(\n `Building Rendering Engines`,\n { parentSpan: buildSpan }\n )\n try {\n buildActivityTimer.start()\n // bundle graphql-engine\n engineBundlingPromises.push(\n createGraphqlEngineBundle(program.directory, report, program.verbose)\n )\n\n engineBundlingPromises.push(\n createPageSSRBundle({\n rootDir: program.directory,\n components: state.components,\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n reporter: report,\n isVerbose: program.verbose,\n })\n )\n await Promise.all(engineBundlingPromises)\n } catch (err) {\n reporter.panic(err)\n } finally {\n buildActivityTimer.end()\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n try {\n const { close, stats } = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n\n closeHTMLBundleCompilation = close\n webpackSSRCompilationHash = stats.hash as string\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n // exec outer config function for each template\n const pageConfigActivity = report.activityTimer(`Execute page configs`, {\n parentSpan: buildSpan,\n })\n pageConfigActivity.start()\n try {\n await preparePageTemplateConfigs(gatsbyNodeGraphQLFunction)\n } catch (err) {\n reporter.panic(err)\n } finally {\n pageConfigActivity.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const validateEnginesActivity = report.activityTimer(\n `Validating Rendering Engines`,\n {\n parentSpan: buildSpan,\n }\n )\n validateEnginesActivity.start()\n try {\n await validateEngines(store.getState().program.directory)\n } catch (error) {\n validateEnginesActivity.panic({ id: `98001`, context: {}, error })\n } finally {\n validateEnginesActivity.end()\n }\n }\n\n const cacheActivity = report.activityTimer(`Caching Webpack compilations`, {\n parentSpan: buildSpan,\n })\n try {\n cacheActivity.start()\n await Promise.all([\n closeJavascriptBundleCompilation?.(),\n closeHTMLBundleCompilation?.(),\n ])\n } finally {\n cacheActivity.end()\n }\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n // Only run queries with mode SSG\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => getPageMode(query) === `SSG`\n )\n }\n\n let waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds, {\n parentSpan: buildSpan,\n })\n // Jobs still might be running even though query running finished\n await waitUntilAllJobsComplete()\n // Restart worker pool before merging state to lower memory pressure while merging state\n waitForWorkerPoolRestart = workerPool.restart()\n await mergeWorkerState(workerPool, buildSpan)\n } else {\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n await writeQueryContext({\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n components: state.components,\n })\n }\n\n if (process.send && shouldGenerateEngines()) {\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n if (\n webpackCompilationHash !== state.webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash as string)\n\n rewriteActivityTimer.end()\n }\n\n if (state.html.ssrCompilationHash !== webpackSSRCompilationHash) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: webpackSSRCompilationHash,\n })\n }\n }\n\n await flushPendingPageDataWrites(buildSpan)\n markWebpackStatusAsDone()\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = (webpackAssets as Array<webpack.StatsAsset>)\n .filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n store.dispatch(actions.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`))\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // well, tbf we should just generate this in `.cache` and avoid deleting it :shrug:\n program.keepPageRenderer = true\n }\n\n await waitForWorkerPoolRestart\n\n // Start saving page.mode in the main process (while HTML is generated in workers in parallel)\n const waitMaterializePageMode = materializePageMode()\n\n const { toRegenerate, toDelete } =\n await buildHTMLPagesAndDeleteStaleArtifacts({\n program,\n workerPool,\n buildSpan,\n })\n\n await waitMaterializePageMode\n const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: toRegenerate.length, // number of html files that will be written\n totalPagesCount: store.getState().pages.size, // total number of pages\n SSRCount,\n DSGCount,\n SSGCount,\n })\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: postBuildActivityTimer.span,\n })\n postBuildActivityTimer.end()\n\n // Wait for any jobs that were started in onPostBuild\n // This could occur due to queries being run which invoke sharp for instance\n await waitUntilAllJobsComplete()\n\n try {\n await waitWorkerPoolEnd\n } catch (e) {\n report.warn(`Error when closing WorkerPool: ${e.message}`)\n }\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n const state = store.getState()\n reporter._renderPageTree({\n components: state.components,\n functions: state.functions,\n pages: state.pages,\n root: state.program.directory,\n })\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n buildActivity.end()\n\n if (program.logPages) {\n if (toRegenerate.length) {\n report.info(\n `Built pages:\\n${toRegenerate\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (toDelete.length) {\n report.info(\n `Deleted pages:\\n${toDelete\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (program.writeToFile) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = toRegenerate.length\n ? `${toRegenerate.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = toDelete.length\n ? `${toDelete.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
|
|
@@ -127,7 +127,7 @@ module.exports = async program => {
|
|
|
127
127
|
|
|
128
128
|
process.exit(0);
|
|
129
129
|
});
|
|
130
|
-
(0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
|
|
130
|
+
await (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
|
|
131
131
|
(0, _webpackStatus.markWebpackStatusAsPending)();
|
|
132
132
|
|
|
133
133
|
_reporter.default.pendingActivity({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","SSGCount","DSGCount","SSRCount","page","store","getState","pages","values","mode","telemetry","trackCli","siteMeasurements","totalPagesCount","size","on","msg","action","exit","payload","openDebuggerPort","debugInfo","inspector","url","undefined","break","open","port","module","exports","program","global","__GATSBY","env","GATSBY_NODE_GLOBALS","JSON","parse","VERBOSE","verbose","reporter","setVerbose","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","pendingActivity","id","startBackgroundUpdate","parseInt","e","message","app","parentSpan","startSpan","machine","developMachine","withContext","pendingQueryRuns","Set","service","start"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","SSGCount","DSGCount","SSRCount","page","store","getState","pages","values","mode","telemetry","trackCli","siteMeasurements","totalPagesCount","size","on","msg","action","exit","payload","openDebuggerPort","debugInfo","inspector","url","undefined","break","open","port","module","exports","program","global","__GATSBY","env","GATSBY_NODE_GLOBALS","JSON","parse","VERBOSE","verbose","reporter","setVerbose","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","pendingActivity","id","startBackgroundUpdate","parseInt","e","message","app","parentSpan","startSpan","machine","developMachine","withContext","pendingQueryRuns","Set","service","start"],"mappings":"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","sourcesContent":["import { syncStaticDir } from \"../utils/get-static-dir\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport telemetry from \"gatsby-telemetry\"\nimport { isTruthy } from \"gatsby-core-utils\"\nimport express from \"express\"\nimport inspector from \"inspector\"\nimport { initTracer } from \"../utils/tracer\"\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport onExit from \"signal-exit\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { markWebpackStatusAsPending } from \"../utils/webpack-status\"\nimport { store } from \"../redux\"\n\nimport { IProgram, IDebugInfo } from \"./types\"\nimport { interpret } from \"xstate\"\nimport { globalTracer } from \"opentracing\"\nimport { developMachine } from \"../state-machines/develop\"\nimport { logTransitions } from \"../utils/state-machine-logging\"\n\nconst tracer = globalTracer()\n\n// const isInteractive = process.stdout.isTTY\n\n// Watch the static directory and copy files to public as they're added or\n// changed. Wait 10 seconds so copying doesn't interfere with the regular\n// bootstrap.\nsetTimeout(() => {\n syncStaticDir()\n}, 10000)\n\n// Time for another story...\n// When the parent process is killed by SIGKILL, Node doesm't kill spawned child processes\n// Hence, we peiodically send a heart beat to the parent to check if it is still alive\n// This will crash with Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed\n// and kill the orphaned child process as a result\nif (process.send) {\n setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n process.send!({\n type: `HEARTBEAT`,\n })\n }, 1000)\n}\n\nonExit(() => {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\n\n telemetry.trackCli(`DEVELOP_STOP`, {\n siteMeasurements: {\n totalPagesCount: store.getState().pages.size,\n SSRCount,\n DSGCount,\n SSGCount,\n },\n })\n})\n\nprocess.on(`message`, msg => {\n if (msg.type === `COMMAND` && msg.action.type === `EXIT`) {\n process.exit(msg.action.payload)\n }\n})\n\ninterface IDevelopArgs extends IProgram {\n debugInfo: IDebugInfo | null\n}\n\nconst openDebuggerPort = (debugInfo: IDebugInfo): void => {\n if (inspector.url() !== undefined) {\n return // fixes #26708\n }\n\n if (debugInfo.break) {\n inspector.open(debugInfo.port, undefined, true)\n // eslint-disable-next-line no-debugger\n debugger\n } else {\n inspector.open(debugInfo.port)\n }\n}\n\nmodule.exports = async (program: IDevelopArgs): Promise<void> => {\n // provide global Gatsby object\n global.__GATSBY = process.env.GATSBY_NODE_GLOBALS\n ? JSON.parse(process.env.GATSBY_NODE_GLOBALS)\n : {}\n\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n reporter.setVerbose(program.verbose)\n\n if (program.debugInfo) {\n openDebuggerPort(program.debugInfo)\n }\n\n // We want to prompt the feedback request when users quit develop\n // assuming they pass the heuristic check to know they are a user\n // we want to request feedback from, and we're not annoying them.\n process.on(`SIGINT`, async (): Promise<void> => {\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n process.exit(0)\n })\n\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n markWebpackStatusAsPending()\n reporter.pendingActivity({ id: `webpack-develop` })\n telemetry.trackCli(`DEVELOP_START`)\n telemetry.startBackgroundUpdate()\n\n const port =\n typeof program.port === `string` ? parseInt(program.port, 10) : program.port\n\n try {\n program.port = await detectPortInUseAndPrompt(port)\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n process.exit(0)\n }\n\n throw e\n }\n\n const app = express()\n const parentSpan = tracer.startSpan(`bootstrap`)\n\n const machine = developMachine.withContext({\n program,\n parentSpan,\n app,\n pendingQueryRuns: new Set([`/`]),\n })\n\n const service = interpret(machine)\n\n if (program.verbose) {\n logTransitions(service)\n }\n\n service.start()\n}\n"],"file":"develop-process.js"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -36,6 +36,8 @@ var _prepareUrls = require("../utils/prepare-urls");
|
|
|
36
36
|
|
|
37
37
|
var _pageData = require("../utils/page-data");
|
|
38
38
|
|
|
39
|
+
var _tracer = require("../utils/tracer");
|
|
40
|
+
|
|
39
41
|
(0, _signalExit.default)(() => {
|
|
40
42
|
_gatsbyTelemetry.default.trackCli(`SERVE_STOP`);
|
|
41
43
|
});
|
|
@@ -85,6 +87,7 @@ module.exports = async program => {
|
|
|
85
87
|
|
|
86
88
|
_gatsbyTelemetry.default.startBackgroundUpdate();
|
|
87
89
|
|
|
90
|
+
await (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
|
|
88
91
|
let {
|
|
89
92
|
prefixPaths,
|
|
90
93
|
port,
|
|
@@ -223,14 +226,21 @@ module.exports = async program => {
|
|
|
223
226
|
const page = graphqlEngine.findPageByPath(potentialPagePath);
|
|
224
227
|
|
|
225
228
|
if (page && (page.mode === `DSG` || page.mode === `SSR`)) {
|
|
229
|
+
const requestActivity = _reporter.default.phantomActivity(`request for "${req.path}"`);
|
|
230
|
+
|
|
231
|
+
requestActivity.start();
|
|
232
|
+
|
|
226
233
|
try {
|
|
234
|
+
const spanContext = requestActivity.span.context();
|
|
227
235
|
const data = await getData({
|
|
228
236
|
pathName: req.path,
|
|
229
237
|
graphqlEngine,
|
|
230
|
-
req
|
|
238
|
+
req,
|
|
239
|
+
spanContext
|
|
231
240
|
});
|
|
232
241
|
const results = await renderPageData({
|
|
233
|
-
data
|
|
242
|
+
data,
|
|
243
|
+
spanContext
|
|
234
244
|
});
|
|
235
245
|
|
|
236
246
|
if (page.mode === `SSR` && data.serverDataHeaders) {
|
|
@@ -244,6 +254,8 @@ module.exports = async program => {
|
|
|
244
254
|
_reporter.default.error(`Generating page-data for "${requestedPagePath}" / "${potentialPagePath}" failed.`, e);
|
|
245
255
|
|
|
246
256
|
return res.status(500).contentType(`text/plain`).send(`Internal server error.`);
|
|
257
|
+
} finally {
|
|
258
|
+
requestActivity.end();
|
|
247
259
|
}
|
|
248
260
|
}
|
|
249
261
|
|
|
@@ -255,14 +267,21 @@ module.exports = async program => {
|
|
|
255
267
|
const page = graphqlEngine.findPageByPath(potentialPagePath);
|
|
256
268
|
|
|
257
269
|
if (page && (page.mode === `DSG` || page.mode === `SSR`)) {
|
|
270
|
+
const requestActivity = _reporter.default.phantomActivity(`request for "${req.path}"`);
|
|
271
|
+
|
|
272
|
+
requestActivity.start();
|
|
273
|
+
|
|
258
274
|
try {
|
|
275
|
+
const spanContext = requestActivity.span.context();
|
|
259
276
|
const data = await getData({
|
|
260
277
|
pathName: potentialPagePath,
|
|
261
278
|
graphqlEngine,
|
|
262
|
-
req
|
|
279
|
+
req,
|
|
280
|
+
spanContext
|
|
263
281
|
});
|
|
264
282
|
const results = await renderHTML({
|
|
265
|
-
data
|
|
283
|
+
data,
|
|
284
|
+
spanContext
|
|
266
285
|
});
|
|
267
286
|
|
|
268
287
|
if (page.mode === `SSR` && data.serverDataHeaders) {
|
|
@@ -282,6 +301,8 @@ module.exports = async program => {
|
|
|
282
301
|
res.contentType(`text/plain`).send(`Internal server error.`);
|
|
283
302
|
}
|
|
284
303
|
});
|
|
304
|
+
} finally {
|
|
305
|
+
requestActivity.end();
|
|
285
306
|
}
|
|
286
307
|
}
|
|
287
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/serve.ts"],"names":["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","sendFile","err","module","exports","startBackgroundUpdate","prefixPaths","port","open","host","parseInt","configModule","config","pathPrefix","configPathPrefix","root","app","router","express","Router","use","expressMiddleware","static","dotfiles","compiledFunctionsDir","functions","readFileSync","e","any","urlencoded","extended","_","cookies","headers","cookie","text","json","raw","pathFragment","params","functionObj","functionRoute","some","f","matchResult","pathToFunction","absoluteCompiledFilePath","start","Date","now","require","cache","resolve","fn","fnToExecute","default","Promise","console","headersSent","sendStatus","end","log","GraphQLEngine","getData","renderPageData","renderHTML","graphqlEngine","dbPath","get","requestedPagePath","pagePath","potentialPagePath","page","findPageByPath","mode","data","pathName","results","serverDataHeaders","name","value","Object","entries","setHeader","send","status","contentType","header","printInstructions","appName","urls","lanUrlForTerminal","localUrlForTerminal","startListening","listen","ssl","sitePackageJson","info","localUrlForBrowser","catch","message"],"mappings":"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","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/lib/utils\"\nimport onExit from \"signal-exit\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport multer from \"multer\"\nimport cookie from \"cookie\"\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 { IGatsbyFunction } from \"../redux/types\"\nimport { reverseFixedPagePath } from \"../utils/page-data\"\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 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 = preferDefault(configModule)\n\n const { pathPrefix: configPathPrefix } = config || {}\n\n const pathPrefix = prefixPaths && configPathPrefix ? configPathPrefix : `/`\n\n const root = path.join(program.directory, `public`)\n\n const app = express()\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 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 app.use(\n `/api/*`,\n multer().any(),\n express.urlencoded({ extended: true }),\n (req, _, next) => {\n const cookies = req.headers.cookie\n\n if (!cookies) {\n return next()\n }\n\n req.cookies = cookie.parse(cookies)\n\n return next()\n },\n express.text(),\n express.json(),\n express.raw(),\n async (req, res, next) => {\n const { \"0\": pathFragment } = req.params\n\n // Check first for exact matches.\n let functionObj = functions.find(\n ({ functionRoute }) => functionRoute === pathFragment\n )\n\n if (!functionObj) {\n // Check if there's any matchPaths that match.\n // We loop until we find the first match.\n functions.some(f => {\n if (f.matchPath) {\n const matchResult = reachMatch(f.matchPath, pathFragment)\n if (matchResult) {\n req.params = matchResult.params\n if (req.params[`*`]) {\n // Backwards compatability for v3\n // TODO remove in v5\n req.params[`0`] = req.params[`*`]\n }\n functionObj = f\n\n return true\n }\n }\n\n return false\n })\n }\n\n if (functionObj) {\n const pathToFunction = functionObj.absoluteCompiledFilePath\n const start = Date.now()\n\n try {\n delete require.cache[require.resolve(pathToFunction)]\n const fn = require(pathToFunction)\n\n const fnToExecute = (fn && fn.default) || fn\n\n await Promise.resolve(fnToExecute(req, res))\n } catch (e) {\n console.error(e)\n // Don't send the error if that would cause another error.\n if (!res.headersSent) {\n res.sendStatus(500)\n }\n }\n\n const end = Date.now()\n console.log(\n `Executed function \"/api/${functionObj.functionRoute}\" in ${\n end - start\n }ms`\n )\n\n return\n } else {\n next()\n }\n }\n )\n }\n\n // Handle SSR & DSG Pages\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n try {\n const { GraphQLEngine } = require(path.join(\n program.directory,\n `.cache`,\n `query-engine`\n )) as typeof import(\"../schema/graphql-engine/entry\")\n const { getData, renderPageData, renderHTML } = require(path.join(\n program.directory,\n `.cache`,\n `page-ssr`\n )) as typeof import(\"../utils/page-ssr-module/entry\")\n const graphqlEngine = new GraphQLEngine({\n dbPath: path.join(program.directory, `.cache`, `data`, `datastore`),\n })\n\n app.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 try {\n const data = await getData({\n pathName: req.path,\n graphqlEngine,\n req,\n })\n const results = await renderPageData({ data })\n if (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n return void res.send(results)\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 }\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 try {\n const data = await getData({\n pathName: potentialPagePath,\n graphqlEngine,\n req,\n })\n const results = await renderHTML({ data })\n if (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n return res.send(results)\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 }\n }\n }\n return next()\n })\n } catch (error) {\n // TODO: Handle case of engine not being generated\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)\n startListening()\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n return\n }\n\n throw e\n }\n}\n"],"file":"serve.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/commands/serve.ts"],"names":["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","sendFile","err","module","exports","startBackgroundUpdate","process","env","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","prefixPaths","port","open","host","parseInt","configModule","config","pathPrefix","configPathPrefix","root","app","router","express","Router","use","expressMiddleware","static","dotfiles","compiledFunctionsDir","functions","readFileSync","e","any","urlencoded","extended","_","cookies","headers","cookie","text","json","raw","pathFragment","params","functionObj","functionRoute","some","f","matchResult","pathToFunction","absoluteCompiledFilePath","start","Date","now","require","cache","resolve","fn","fnToExecute","default","Promise","console","headersSent","sendStatus","end","log","GraphQLEngine","getData","renderPageData","renderHTML","graphqlEngine","dbPath","get","requestedPagePath","pagePath","potentialPagePath","page","findPageByPath","mode","requestActivity","phantomActivity","spanContext","span","context","data","pathName","results","serverDataHeaders","name","value","Object","entries","setHeader","send","status","contentType","header","printInstructions","appName","urls","lanUrlForTerminal","localUrlForTerminal","startListening","listen","ssl","sitePackageJson","info","localUrlForBrowser","catch","message"],"mappings":"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","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/lib/utils\"\nimport onExit from \"signal-exit\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport multer from \"multer\"\nimport cookie from \"cookie\"\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 { IGatsbyFunction } from \"../redux/types\"\nimport { reverseFixedPagePath } from \"../utils/page-data\"\nimport { initTracer } from \"../utils/tracer\"\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 = preferDefault(configModule)\n\n const { pathPrefix: configPathPrefix } = config || {}\n\n const pathPrefix = prefixPaths && configPathPrefix ? configPathPrefix : `/`\n\n const root = path.join(program.directory, `public`)\n\n const app = express()\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 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 app.use(\n `/api/*`,\n multer().any(),\n express.urlencoded({ extended: true }),\n (req, _, next) => {\n const cookies = req.headers.cookie\n\n if (!cookies) {\n return next()\n }\n\n req.cookies = cookie.parse(cookies)\n\n return next()\n },\n express.text(),\n express.json(),\n express.raw(),\n async (req, res, next) => {\n const { \"0\": pathFragment } = req.params\n\n // Check first for exact matches.\n let functionObj = functions.find(\n ({ functionRoute }) => functionRoute === pathFragment\n )\n\n if (!functionObj) {\n // Check if there's any matchPaths that match.\n // We loop until we find the first match.\n functions.some(f => {\n if (f.matchPath) {\n const matchResult = reachMatch(f.matchPath, pathFragment)\n if (matchResult) {\n req.params = matchResult.params\n if (req.params[`*`]) {\n // Backwards compatability for v3\n // TODO remove in v5\n req.params[`0`] = req.params[`*`]\n }\n functionObj = f\n\n return true\n }\n }\n\n return false\n })\n }\n\n if (functionObj) {\n const pathToFunction = functionObj.absoluteCompiledFilePath\n const start = Date.now()\n\n try {\n delete require.cache[require.resolve(pathToFunction)]\n const fn = require(pathToFunction)\n\n const fnToExecute = (fn && fn.default) || fn\n\n await Promise.resolve(fnToExecute(req, res))\n } catch (e) {\n console.error(e)\n // Don't send the error if that would cause another error.\n if (!res.headersSent) {\n res.sendStatus(500)\n }\n }\n\n const end = Date.now()\n console.log(\n `Executed function \"/api/${functionObj.functionRoute}\" in ${\n end - start\n }ms`\n )\n\n return\n } else {\n next()\n }\n }\n )\n }\n\n // Handle SSR & DSG Pages\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n try {\n const { GraphQLEngine } = require(path.join(\n program.directory,\n `.cache`,\n `query-engine`\n )) as typeof import(\"../schema/graphql-engine/entry\")\n const { getData, renderPageData, renderHTML } = require(path.join(\n program.directory,\n `.cache`,\n `page-ssr`\n )) as typeof import(\"../utils/page-ssr-module/entry\")\n const graphqlEngine = new GraphQLEngine({\n dbPath: path.join(program.directory, `.cache`, `data`, `datastore`),\n })\n\n app.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 (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n return void res.send(results)\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 (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n return res.send(results)\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 // TODO: Handle case of engine not being generated\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)\n startListening()\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n return\n }\n\n throw e\n }\n}\n"],"file":"serve.js"}
|
|
@@ -33,7 +33,9 @@ const {
|
|
|
33
33
|
getGraphQLTag,
|
|
34
34
|
StringInterpolationNotAllowedError,
|
|
35
35
|
EmptyGraphQLTagError,
|
|
36
|
-
GraphQLSyntaxError
|
|
36
|
+
GraphQLSyntaxError,
|
|
37
|
+
ExportIsNotAsyncError,
|
|
38
|
+
isWithinConfigExport
|
|
37
39
|
} = require(`babel-plugin-remove-graphql-queries`);
|
|
38
40
|
|
|
39
41
|
const report = require(`gatsby-cli/lib/reporter`);
|
|
@@ -54,7 +56,8 @@ const {
|
|
|
54
56
|
const generateQueryName = ({
|
|
55
57
|
def,
|
|
56
58
|
hash,
|
|
57
|
-
file
|
|
59
|
+
file,
|
|
60
|
+
queryType
|
|
58
61
|
}) => {
|
|
59
62
|
if (!def.name || !def.name.value) {
|
|
60
63
|
const slugified = slugify(file, {
|
|
@@ -62,7 +65,7 @@ const generateQueryName = ({
|
|
|
62
65
|
lower: false
|
|
63
66
|
});
|
|
64
67
|
def.name = {
|
|
65
|
-
value: `${_.camelCase(slugified
|
|
68
|
+
value: `${_.camelCase(`${queryType}-${slugified}-${hash}`)}`,
|
|
66
69
|
kind: `Name`
|
|
67
70
|
};
|
|
68
71
|
}
|
|
@@ -265,7 +268,8 @@ async function findGraphQLTags(file, ast, {
|
|
|
265
268
|
generateQueryName({
|
|
266
269
|
def,
|
|
267
270
|
hash,
|
|
268
|
-
file
|
|
271
|
+
file,
|
|
272
|
+
queryType: `static`
|
|
269
273
|
});
|
|
270
274
|
});
|
|
271
275
|
let templateLoc;
|
|
@@ -281,6 +285,7 @@ async function findGraphQLTags(file, ast, {
|
|
|
281
285
|
text: text,
|
|
282
286
|
hash: hash,
|
|
283
287
|
isStaticQuery: true,
|
|
288
|
+
isConfigQuery: false,
|
|
284
289
|
isHook,
|
|
285
290
|
templateLoc
|
|
286
291
|
};
|
|
@@ -395,11 +400,13 @@ async function findGraphQLTags(file, ast, {
|
|
|
395
400
|
return;
|
|
396
401
|
}
|
|
397
402
|
|
|
403
|
+
const isConfigQuery = isWithinConfigExport(innerPath);
|
|
398
404
|
gqlAst.definitions.forEach(def => {
|
|
399
405
|
generateQueryName({
|
|
400
406
|
def,
|
|
401
407
|
hash,
|
|
402
|
-
file
|
|
408
|
+
file,
|
|
409
|
+
queryType: isConfigQuery ? `config` : `page`
|
|
403
410
|
});
|
|
404
411
|
});
|
|
405
412
|
let templateLoc;
|
|
@@ -415,6 +422,7 @@ async function findGraphQLTags(file, ast, {
|
|
|
415
422
|
text: text,
|
|
416
423
|
hash: hash,
|
|
417
424
|
isStaticQuery: false,
|
|
425
|
+
isConfigQuery,
|
|
418
426
|
isHook: false,
|
|
419
427
|
templateLoc
|
|
420
428
|
};
|
|
@@ -502,14 +510,15 @@ class FileParser {
|
|
|
502
510
|
parentSpan: this.parentSpan,
|
|
503
511
|
addError
|
|
504
512
|
}),
|
|
505
|
-
serverData: findApiExport(ast, `getServerData`)
|
|
506
|
-
|
|
513
|
+
serverData: findApiExport(ast, `getServerData`),
|
|
514
|
+
config: findApiExport(ast, `config`)
|
|
507
515
|
};
|
|
508
516
|
}
|
|
509
517
|
|
|
510
518
|
const {
|
|
511
519
|
astDefinitions,
|
|
512
|
-
serverData
|
|
520
|
+
serverData,
|
|
521
|
+
config
|
|
513
522
|
} = cache[hash]; // Note: we should dispatch this action even when getServerData is not found
|
|
514
523
|
// (maybe it was set before, so now we need to reset renderMode from SSR to the default one)
|
|
515
524
|
|
|
@@ -517,8 +526,8 @@ class FileParser {
|
|
|
517
526
|
type: `SET_COMPONENT_FEATURES`,
|
|
518
527
|
payload: {
|
|
519
528
|
componentPath: file,
|
|
520
|
-
serverData
|
|
521
|
-
|
|
529
|
+
serverData,
|
|
530
|
+
config
|
|
522
531
|
}
|
|
523
532
|
}); // If any AST definitions were extracted, report success.
|
|
524
533
|
// This can mean there is none or there was a babel error when
|
|
@@ -583,6 +592,21 @@ class FileParser {
|
|
|
583
592
|
sourceMessage: err.originalError.message
|
|
584
593
|
}
|
|
585
594
|
};
|
|
595
|
+
} else if (err instanceof ExportIsNotAsyncError) {
|
|
596
|
+
const location = {
|
|
597
|
+
start: err.exportStart,
|
|
598
|
+
end: err.exportStart
|
|
599
|
+
};
|
|
600
|
+
structuredError = {
|
|
601
|
+
id: `85929`,
|
|
602
|
+
location,
|
|
603
|
+
context: {
|
|
604
|
+
exportName: err.exportName,
|
|
605
|
+
codeFrame: (0, _codeFrame.codeFrameColumns)(text, location, {
|
|
606
|
+
highlightCode: process.env.FORCE_COLOR !== `0`
|
|
607
|
+
})
|
|
608
|
+
}
|
|
609
|
+
};
|
|
586
610
|
}
|
|
587
611
|
|
|
588
612
|
addError({ ...structuredError,
|