gatsby 2.32.0-next.1 → 2.32.3
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 +26 -0
- package/dist/commands/build-html.js +0 -6
- package/dist/commands/build-html.js.map +1 -1
- package/dist/commands/build.js +7 -0
- 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/redux/actions/restricted.d.ts +1 -1
- package/dist/redux/actions/restricted.js +1 -1
- package/dist/redux/actions/restricted.js.map +1 -1
- package/dist/utils/api-runner-node.js +24 -7
- package/dist/utils/api-runner-node.js.map +1 -1
- package/dist/utils/eslint-config.js +5 -28
- package/dist/utils/eslint-config.js.map +1 -1
- package/dist/utils/page-data.js +16 -3
- package/dist/utils/page-data.js.map +1 -1
- package/dist/utils/webpack-utils.js +15 -42
- package/dist/utils/webpack-utils.js.map +1 -1
- package/dist/utils/webpack.config.js +9 -9
- package/dist/utils/webpack.config.js.map +1 -1
- package/gatsby-admin-public/{4c744e84-7cab5788add6e0efa0f9.js → 4c744e84-6c27fb4a13dc8c8c3e88.js} +2 -2
- package/gatsby-admin-public/4c744e84-6c27fb4a13dc8c8c3e88.js.map +1 -0
- package/gatsby-admin-public/69bd6bf3-00a5b50945cce68e041c.js +2 -0
- package/gatsby-admin-public/69bd6bf3-00a5b50945cce68e041c.js.map +1 -0
- package/gatsby-admin-public/784b2cee55c07b638f20445dec340adf9f1888a3-d690a55f56dedc0f95b3.js +3 -0
- package/gatsby-admin-public/{784b2cee55c07b638f20445dec340adf9f1888a3-ea23ae75e6272409f7df.js.LICENSE.txt → 784b2cee55c07b638f20445dec340adf9f1888a3-d690a55f56dedc0f95b3.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/784b2cee55c07b638f20445dec340adf9f1888a3-d690a55f56dedc0f95b3.js.map +1 -0
- package/gatsby-admin-public/854a7ef1f34af0aefbdfdd9304a0c00251662775-30cef3c004238987a416.js +2 -0
- package/gatsby-admin-public/854a7ef1f34af0aefbdfdd9304a0c00251662775-30cef3c004238987a416.js.map +1 -0
- package/gatsby-admin-public/app-74fe4789160202707c96.js +3 -0
- package/gatsby-admin-public/{app-e6100ff2e6b77e92780c.js.LICENSE.txt → app-74fe4789160202707c96.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/app-74fe4789160202707c96.js.map +1 -0
- package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-976ea4aa8380d4a68cb1.js +3 -0
- package/gatsby-admin-public/{c432bec7e9afb3443fd639df9e5f119e13575cf7-fc6c096693e9436e346d.js.LICENSE.txt → c432bec7e9afb3443fd639df9e5f119e13575cf7-976ea4aa8380d4a68cb1.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-976ea4aa8380d4a68cb1.js.map +1 -0
- package/gatsby-admin-public/chunk-map.json +1 -1
- package/gatsby-admin-public/component---src-pages-index-tsx-70aa31e4e1eca0a560a8.js +3 -0
- package/gatsby-admin-public/{component---src-pages-index-tsx-6341c8d8fb5f3841683c.js.LICENSE.txt → component---src-pages-index-tsx-70aa31e4e1eca0a560a8.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/component---src-pages-index-tsx-70aa31e4e1eca0a560a8.js.map +1 -0
- package/gatsby-admin-public/component---src-pages-pages-tsx-f865a6a00da36ea6b527.js +2 -0
- package/gatsby-admin-public/component---src-pages-pages-tsx-f865a6a00da36ea6b527.js.map +1 -0
- package/gatsby-admin-public/{component---src-pages-plugins-tsx-c5889ee95012697435f9.js → component---src-pages-plugins-tsx-c6700b48ed9ac88a9768.js} +3 -3
- package/gatsby-admin-public/{component---src-pages-plugins-tsx-c5889ee95012697435f9.js.LICENSE.txt → component---src-pages-plugins-tsx-c6700b48ed9ac88a9768.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/component---src-pages-plugins-tsx-c6700b48ed9ac88a9768.js.map +1 -0
- package/gatsby-admin-public/component---src-pages-recipe-js-4e8fdacf3e36393b3739.js +2 -0
- package/gatsby-admin-public/component---src-pages-recipe-js-4e8fdacf3e36393b3739.js.map +1 -0
- package/gatsby-admin-public/{component---src-pages-recipes-tsx-783a64490d7b6adbd6f7.js → component---src-pages-recipes-tsx-3ee575d06f86a76026da.js} +2 -2
- package/gatsby-admin-public/component---src-pages-recipes-tsx-3ee575d06f86a76026da.js.map +1 -0
- package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-fbd253211b90ee4d944c.js.map +1 -1
- package/gatsby-admin-public/framework-b5530edc347e85dd3979.js.map +1 -1
- package/gatsby-admin-public/index.html +1 -1
- package/gatsby-admin-public/page-data/app-data.json +1 -1
- package/gatsby-admin-public/pages/index.html +1 -1
- package/gatsby-admin-public/plugins/index.html +1 -1
- package/gatsby-admin-public/{polyfill-584f923fed33d1e0d0f2.js → polyfill-bb3950ad41cd96a6ba64.js} +2 -2
- package/gatsby-admin-public/polyfill-bb3950ad41cd96a6ba64.js.map +1 -0
- package/gatsby-admin-public/recipe/index.html +1 -1
- package/gatsby-admin-public/recipes/index.html +1 -1
- package/gatsby-admin-public/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2 +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hjg.woff +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2 +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hjg.woff +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2 +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjg.woff +0 -0
- package/gatsby-admin-public/webpack-runtime-ce59e1ba33a41c65ea97.js +2 -0
- package/gatsby-admin-public/webpack-runtime-ce59e1ba33a41c65ea97.js.map +1 -0
- package/gatsby-admin-public/webpack.stats.json +1 -1
- package/package.json +18 -16
- package/gatsby-admin-public/4c744e84-7cab5788add6e0efa0f9.js.map +0 -1
- package/gatsby-admin-public/69bd6bf3-698d78cea2b9cdbdca4e.js +0 -2
- package/gatsby-admin-public/69bd6bf3-698d78cea2b9cdbdca4e.js.map +0 -1
- package/gatsby-admin-public/784b2cee55c07b638f20445dec340adf9f1888a3-ea23ae75e6272409f7df.js +0 -3
- package/gatsby-admin-public/784b2cee55c07b638f20445dec340adf9f1888a3-ea23ae75e6272409f7df.js.map +0 -1
- package/gatsby-admin-public/854a7ef1f34af0aefbdfdd9304a0c00251662775-a7c8fd5f38a518e8c761.js +0 -2
- package/gatsby-admin-public/854a7ef1f34af0aefbdfdd9304a0c00251662775-a7c8fd5f38a518e8c761.js.map +0 -1
- package/gatsby-admin-public/app-e6100ff2e6b77e92780c.js +0 -3
- package/gatsby-admin-public/app-e6100ff2e6b77e92780c.js.map +0 -1
- package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-fc6c096693e9436e346d.js +0 -3
- package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-fc6c096693e9436e346d.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-index-tsx-6341c8d8fb5f3841683c.js +0 -3
- package/gatsby-admin-public/component---src-pages-index-tsx-6341c8d8fb5f3841683c.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-pages-tsx-d50f23751587969a75f3.js +0 -2
- package/gatsby-admin-public/component---src-pages-pages-tsx-d50f23751587969a75f3.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-plugins-tsx-c5889ee95012697435f9.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-recipe-js-82e182b8d64a755bbd34.js +0 -2
- package/gatsby-admin-public/component---src-pages-recipe-js-82e182b8d64a755bbd34.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-recipes-tsx-783a64490d7b6adbd6f7.js.map +0 -1
- package/gatsby-admin-public/polyfill-584f923fed33d1e0d0f2.js.map +0 -1
- package/gatsby-admin-public/static/webfonts/s/inter/v2/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2 +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v2/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hjg.woff +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v2/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2 +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v2/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hjg.woff +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v2/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2 +0 -0
- package/gatsby-admin-public/static/webfonts/s/inter/v2/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjg.woff +0 -0
- package/gatsby-admin-public/webpack-runtime-828a9d2f0b52b84e04f7.js +0 -2
- package/gatsby-admin-public/webpack-runtime-828a9d2f0b52b84e04f7.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,32 @@
|
|
|
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
|
+
## [2.32.3](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.32.2...gatsby@2.32.3) (2021-02-05)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package gatsby
|
|
9
|
+
|
|
10
|
+
## [2.32.2](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.32.1...gatsby@2.32.2) (2021-02-04)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package gatsby
|
|
13
|
+
|
|
14
|
+
## [2.32.1](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.32.0...gatsby@2.32.1) (2021-02-04)
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **gatsby:** use separate eslint-loader for rules that are always required ([#29317](https://github.com/gatsbyjs/gatsby/issues/29317)) ([#29327](https://github.com/gatsbyjs/gatsby/issues/29327)) ([488e5d3](https://github.com/gatsbyjs/gatsby/commit/488e5d38fad19311a5910700c4fbeddf34f5f907))
|
|
19
|
+
|
|
20
|
+
# [2.32.0](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.32.0-next.1...gatsby@2.32.0) (2021-02-02)
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
- **gatsby:** queue fs writes so event loop not overwhelmed on large sites ([#29219](https://github.com/gatsbyjs/gatsby/issues/29219)) ([7c38997](https://github.com/gatsbyjs/gatsby/commit/7c38997090f550d2b2cd902128f87fc5b19a631b))
|
|
25
|
+
- **gatsby:** Upgrade v8-compile-cache ([#29244](https://github.com/gatsbyjs/gatsby/issues/29244)) ([1af6e10](https://github.com/gatsbyjs/gatsby/commit/1af6e10a8c00d72f5aeebe120d06888394ca1bd9))
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
- **gatsby:** cache/memoize hot functions in runAPI ([#29240](https://github.com/gatsbyjs/gatsby/issues/29240)) ([e1c899f](https://github.com/gatsbyjs/gatsby/commit/e1c899f3abc54af038bd5aa3fb1c2ee79dd098fc))
|
|
30
|
+
- **gatsby:** distinguish total number of pages from number of written html files ([#29149](https://github.com/gatsbyjs/gatsby/issues/29149)) ([e676944](https://github.com/gatsbyjs/gatsby/commit/e676944d629eab2b92446d3dac72f9a290fa4367))
|
|
31
|
+
|
|
6
32
|
# [2.32.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.32.0-next.0...gatsby@2.32.0-next.1) (2021-01-26)
|
|
7
33
|
|
|
8
34
|
### Bug Fixes
|
|
@@ -13,8 +13,6 @@ var _reporter = _interopRequireDefault(require("gatsby-cli/lib/reporter"));
|
|
|
13
13
|
|
|
14
14
|
var _errors = require("gatsby-cli/lib/reporter/errors");
|
|
15
15
|
|
|
16
|
-
var _gatsbyTelemetry = _interopRequireDefault(require("gatsby-telemetry"));
|
|
17
|
-
|
|
18
16
|
var _lodash = require("lodash");
|
|
19
17
|
|
|
20
18
|
var _webpack = _interopRequireDefault(require("webpack"));
|
|
@@ -156,10 +154,6 @@ class BuildHTMLError extends Error {
|
|
|
156
154
|
}
|
|
157
155
|
|
|
158
156
|
const doBuildPages = async (rendererPath, pagePaths, activity, workerPool) => {
|
|
159
|
-
_gatsbyTelemetry.default.addSiteMeasurement(`BUILD_END`, {
|
|
160
|
-
pagesCount: pagePaths.length
|
|
161
|
-
});
|
|
162
|
-
|
|
163
157
|
try {
|
|
164
158
|
await renderHTMLQueue(workerPool, activity, rendererPath, pagePaths);
|
|
165
159
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/build-html.ts"],"names":["devssrWebpackCompiler","devssrWebpackWatcher","needToRecompileSSRBundle","getDevSSRWebpack","process","env","gatsby_executing_command","Error","oldHash","newHash","runWebpack","compilerConfig","stage","directory","Bluebird","resolve","reject","GATSBY_EXPERIMENTAL_DEV_SSR","run","err","stats","hooks","invalid","tap","file","watch","ignored","emitter","emit","suspend","hash","restartWorker","require","doBuildRenderer","webpackConfig","hasErrors","reporter","panic","compilation","errors","buildRenderer","program","parentSpan","config","deleteRenderer","rendererPath","fs","remove","e","renderHTMLQueue","workerPool","activity","htmlComponentRendererPath","pages","envVars","NODE_ENV","gatsby_log_level","segments","map","pageSegment","renderHTML","paths","tick","length","BuildHTMLError","constructor","error","message","codeFrame","Object","getOwnPropertyNames","forEach","key","doBuildPages","pagePaths","telemetry","addSiteMeasurement","pagesCount","prettyError","stack","buildError","context","buildHTML","span"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAYA,IAAIA,qBAAJ;AACA,IAAIC,oBAAJ;AACA,IAAIC,wBAAwB,GAAG,IAA/B;;AACO,MAAMC,gBAAgB,GAAG,MAI3B;AACH,MAAIC,OAAO,CAACC,GAAR,CAAYC,wBAAZ,KAA0C,SAA9C,EAAwD;AACtD,UAAM,IAAIC,KAAJ,CAAW,iDAAX,CAAN;AACD;;AAED,SAAO;AACLN,IAAAA,oBADK;AAELD,IAAAA,qBAFK;AAGLE,IAAAA;AAHK,GAAP;AAKD,CAdM;;;AAgBP,IAAIM,OAAO,GAAI,EAAf;AACA,IAAIC,OAAO,GAAI,EAAf;;AACA,MAAMC,UAAU,GAAG,CACjBC,cADiB,EAEjBC,KAFiB,EAGjBC,SAHiB,KAKjB,IAAIC,iBAAJ,CAAa,CAACC,OAAD,EAAUC,MAAV,KAAqB;AAChC,MAAI,CAACZ,OAAO,CAACC,GAAR,CAAYY,2BAAb,IAA4CL,KAAK,KAAM,YAA3D,EAAwE;AACtE,0BAAQD,cAAR,EAAwBO,GAAxB,CAA4B,CAACC,GAAD,EAAMC,KAAN,KAAgB;AAC1C,UAAID,GAAJ,EAAS;AACP,eAAOH,MAAM,CAACG,GAAD,CAAb;AACD,OAFD,MAEO;AACL,eAAOJ,OAAO,CAACK,KAAD,CAAd;AACD;AACF,KAND;AAOD,GARD,MAQO,IACLhB,OAAO,CAACC,GAAR,CAAYY,2BAAZ,IACAL,KAAK,KAAM,cAFN,EAGL;AACAZ,IAAAA,qBAAqB,GAAG,sBAAQW,cAAR,CAAxB;AACAX,IAAAA,qBAAqB,CAACqB,KAAtB,CAA4BC,OAA5B,CAAoCC,GAApC,CAAyC,uBAAzC,EAAiEC,IAAI,IAAI;AACvEtB,MAAAA,wBAAwB,GAAG,IAA3B;AACD,KAFD;AAGAD,IAAAA,oBAAoB,GAAGD,qBAAqB,CAACyB,KAAtB,CACrB;AACEC,MAAAA,OAAO,EAAE;AADX,KADqB,EAIrB,CAACP,GAAD,EAAMC,KAAN,KAAgB;AACdlB,MAAAA,wBAAwB,GAAG,KAA3B;;AACAyB,qBAAQC,IAAR,CAAc,0BAAd;;AACA3B,MAAAA,oBAAoB,CAAC4B,OAArB;;AAEA,UAAIV,GAAJ,EAAS;AACP,eAAOH,MAAM,CAACG,GAAD,CAAb;AACD,OAFD,MAEO;AACLV,QAAAA,OAAO,GAAGW,KAAK,CAACU,IAAN,IAAe,EAAzB;;AAEA,cAAM;AACJC,UAAAA;AADI,YAEFC,OAAO,CAAE,kCAAF,CAFX,CAHK,CAML;;;AACA,YAAIxB,OAAO,KAAM,EAAb,IAAkBC,OAAO,KAAKD,OAAlC,EAA2C;AACzCuB,UAAAA,aAAa,CAAE,GAAElB,SAAU,wBAAd,CAAb;AACD;;AAEDL,QAAAA,OAAO,GAAGC,OAAV;AAEA,eAAOM,OAAO,CAACK,KAAD,CAAd;AACD;AACF,KA1BoB,CAAvB;AA4BD;AACF,CA9CD,CALF;;AAqDA,MAAMa,eAAe,GAAG,OACtB;AAAEpB,EAAAA;AAAF,CADsB,EAEtBqB,aAFsB,EAGtBtB,KAHsB,KAIF;AACpB,QAAMQ,KAAK,GAAG,MAAMV,UAAU,CAACwB,aAAD,EAAgBtB,KAAhB,EAAuBC,SAAvB,CAA9B;;AACA,MAAIO,KAAK,CAACe,SAAN,EAAJ,EAAuB;AACrBC,sBAASC,KAAT,CAAe,+CAAuBzB,KAAvB,EAA8BQ,KAAK,CAACkB,WAAN,CAAkBC,MAAhD,CAAf;AACD,GAJmB,CAMpB;;;AACA,SAAQ,GAAE1B,SAAU,wBAApB;AACD,CAZD;;AAcO,MAAM2B,aAAa,GAAG,OAC3BC,OAD2B,EAE3B7B,KAF2B,EAG3B8B,UAH2B,KAIP;AACpB,QAAM;AAAE7B,IAAAA;AAAF,MAAgB4B,OAAtB;AACA,QAAME,MAAM,GAAG,MAAM,uBAAcF,OAAd,EAAuB5B,SAAvB,EAAkCD,KAAlC,EAAyC,IAAzC,EAA+C;AAClE8B,IAAAA;AADkE,GAA/C,CAArB;AAIA,SAAOT,eAAe,CAACQ,OAAD,EAAUE,MAAV,EAAkB/B,KAAlB,CAAtB;AACD,CAXM;;;;AAaA,MAAMgC,cAAc,GAAG,MAAOC,YAAP,IAA+C;AAC3E,MAAI;AACF,UAAMC,iBAAGC,MAAH,CAAUF,YAAV,CAAN;AACA,UAAMC,iBAAGC,MAAH,CAAW,GAAEF,YAAa,MAA1B,CAAN;AACD,GAHD,CAGE,OAAOG,CAAP,EAAU,CACV;AACD;AACF,CAPM;;;;AASP,MAAMC,eAAe,GAAG,OACtBC,UADsB,EAEtBC,QAFsB,EAGtBC,yBAHsB,EAItBC,KAJsB,KAKJ;AAClB;AACA;AACA,QAAMC,OAAO,GAAG,CACd,CAAE,UAAF,EAAalD,OAAO,CAACC,GAAR,CAAYkD,QAAzB,CADc,EAEd,CAAE,0BAAF,EAA6BnD,OAAO,CAACC,GAAR,CAAYC,wBAAzC,CAFc,EAGd,CAAE,kBAAF,EAAqBF,OAAO,CAACC,GAAR,CAAYmD,gBAAjC,CAHc,CAAhB;AAMA,QAAMC,QAAQ,GAAG,mBAAMJ,KAAN,EAAa,EAAb,CAAjB;AAEA,QAAMvC,kBAAS4C,GAAT,CAAaD,QAAb,EAAuB,MAAME,WAAN,IAAqB;AAChD,UAAMT,UAAU,CAACU,UAAX,CAAsB;AAC1BN,MAAAA,OAD0B;AAE1BF,MAAAA,yBAF0B;AAG1BS,MAAAA,KAAK,EAAEF;AAHmB,KAAtB,CAAN;;AAMA,QAAIR,QAAQ,IAAIA,QAAQ,CAACW,IAAzB,EAA+B;AAC7BX,MAAAA,QAAQ,CAACW,IAAT,CAAcH,WAAW,CAACI,MAA1B;AACD;AACF,GAVK,CAAN;AAWD,CA3BD;;AA6BA,MAAMC,cAAN,SAA6BzD,KAA7B,CAAmC;AAMjC0D,EAAAA,WAAW,CAACC,KAAD,EAAe;AACxB,UAAMA,KAAK,CAACC,OAAZ,EADwB,CAGxB;AACA;;AAJwB,SAL1BC,SAK0B,GALb,EAKa;AAKxBC,IAAAA,MAAM,CAACC,mBAAP,CAA2BJ,KAA3B,EAAkCK,OAAlC,CAA0CC,GAAG,IAAI;AAC/C,WAAKA,GAAL,IAAYN,KAAK,CAACM,GAAD,CAAjB;AACD,KAFD;AAGD;;AAdgC;;AAiB5B,MAAMC,YAAY,GAAG,OAC1B5B,YAD0B,EAE1B6B,SAF0B,EAG1BvB,QAH0B,EAI1BD,UAJ0B,KAKR;AAClByB,2BAAUC,kBAAV,CAA8B,WAA9B,EAA0C;AACxCC,IAAAA,UAAU,EAAEH,SAAS,CAACX;AADkB,GAA1C;;AAIA,MAAI;AACF,UAAMd,eAAe,CAACC,UAAD,EAAaC,QAAb,EAAuBN,YAAvB,EAAqC6B,SAArC,CAArB;AACD,GAFD,CAEE,OAAOR,KAAP,EAAc;AACd,UAAMY,WAAW,GAAG,MAAM,mCACxBZ,KAAK,CAACa,KADkB,EAEvB,GAAElC,YAAa,MAFQ,CAA1B;AAIA,UAAMmC,UAAU,GAAG,IAAIhB,cAAJ,CAAmBc,WAAnB,CAAnB;AACAE,IAAAA,UAAU,CAACC,OAAX,GAAqBf,KAAK,CAACe,OAA3B;AACA,UAAMD,UAAN;AACD;AACF,CArBM,C,CAuBP;;;;;AACO,MAAME,SAAS,GAAG,OAAO;AAC9BzC,EAAAA,OAD8B;AAE9B7B,EAAAA,KAF8B;AAG9B8D,EAAAA,SAH8B;AAI9BvB,EAAAA,QAJ8B;AAK9BD,EAAAA;AAL8B,CAAP,KAYJ;AACnB,QAAML,YAAY,GAAG,MAAML,aAAa,CAACC,OAAD,EAAU7B,KAAV,EAAiBuC,QAAQ,CAACgC,IAA1B,CAAxC;AACA,QAAMV,YAAY,CAAC5B,YAAD,EAAe6B,SAAf,EAA0BvB,QAA1B,EAAoCD,UAApC,CAAlB;AACA,QAAMN,cAAc,CAACC,YAAD,CAApB;AACD,CAhBM","sourcesContent":["import Bluebird from \"bluebird\"\nimport fs from \"fs-extra\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { createErrorFromString } from \"gatsby-cli/lib/reporter/errors\"\nimport telemetry from \"gatsby-telemetry\"\nimport { chunk } from \"lodash\"\nimport webpack from \"webpack\"\n\nimport { emitter } from \"../redux\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\n\nimport { IProgram, Stage } from \"./types\"\n\ntype IActivity = any // TODO\ntype IWorkerPool = any // TODO\n\nexport interface IWebpackWatchingPauseResume extends webpack.Watching {\n suspend: () => void\n resume: () => void\n}\n\nlet devssrWebpackCompiler: webpack.Compiler\nlet devssrWebpackWatcher: IWebpackWatchingPauseResume\nlet needToRecompileSSRBundle = true\nexport const getDevSSRWebpack = (): Record<\n IWebpackWatchingPauseResume,\n webpack.Compiler,\n needToRecompileSSRBundle\n> => {\n if (process.env.gatsby_executing_command !== `develop`) {\n throw new Error(`This function can only be called in development`)\n }\n\n return {\n devssrWebpackWatcher,\n devssrWebpackCompiler,\n needToRecompileSSRBundle,\n }\n}\n\nlet oldHash = ``\nlet newHash = ``\nconst runWebpack = (\n compilerConfig,\n stage: Stage,\n directory\n): Bluebird<webpack.Stats> =>\n new Bluebird((resolve, reject) => {\n if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR || stage === `build-html`) {\n webpack(compilerConfig).run((err, stats) => {\n if (err) {\n return reject(err)\n } else {\n return resolve(stats)\n }\n })\n } else if (\n process.env.GATSBY_EXPERIMENTAL_DEV_SSR &&\n stage === `develop-html`\n ) {\n devssrWebpackCompiler = webpack(compilerConfig)\n devssrWebpackCompiler.hooks.invalid.tap(`ssr file invalidation`, file => {\n needToRecompileSSRBundle = true\n })\n devssrWebpackWatcher = devssrWebpackCompiler.watch(\n {\n ignored: /node_modules/,\n },\n (err, stats) => {\n needToRecompileSSRBundle = false\n emitter.emit(`DEV_SSR_COMPILATION_DONE`)\n devssrWebpackWatcher.suspend()\n\n if (err) {\n return reject(err)\n } else {\n newHash = stats.hash || ``\n\n const {\n restartWorker,\n } = require(`../utils/dev-ssr/render-dev-html`)\n // Make sure we use the latest version during development\n if (oldHash !== `` && newHash !== oldHash) {\n restartWorker(`${directory}/public/render-page.js`)\n }\n\n oldHash = newHash\n\n return resolve(stats)\n }\n }\n )\n }\n })\n\nconst doBuildRenderer = async (\n { directory }: IProgram,\n webpackConfig: webpack.Configuration,\n stage: Stage\n): Promise<string> => {\n const stats = await runWebpack(webpackConfig, stage, directory)\n if (stats.hasErrors()) {\n reporter.panic(structureWebpackErrors(stage, stats.compilation.errors))\n }\n\n // render-page.js is hard coded in webpack.config\n return `${directory}/public/render-page.js`\n}\n\nexport const buildRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<string> => {\n const { directory } = program\n const config = await webpackConfig(program, directory, stage, null, {\n parentSpan,\n })\n\n return doBuildRenderer(program, config, stage)\n}\n\nexport const deleteRenderer = async (rendererPath: string): Promise<void> => {\n try {\n await fs.remove(rendererPath)\n await fs.remove(`${rendererPath}.map`)\n } catch (e) {\n // This function will fail on Windows with no further consequences.\n }\n}\n\nconst renderHTMLQueue = async (\n workerPool: IWorkerPool,\n activity: IActivity,\n htmlComponentRendererPath: string,\n pages: Array<string>\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n\n await Bluebird.map(segments, async pageSegment => {\n await workerPool.renderHTML({\n envVars,\n htmlComponentRendererPath,\n paths: pageSegment,\n })\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n}\n\nclass BuildHTMLError extends Error {\n codeFrame = ``\n context?: {\n path: string\n }\n\n constructor(error: Error) {\n super(error.message)\n\n // We must use getOwnProperty because keys like `stack` are not enumerable,\n // but we want to copy over the entire error\n Object.getOwnPropertyNames(error).forEach(key => {\n this[key] = error[key]\n })\n }\n}\n\nexport const doBuildPages = async (\n rendererPath: string,\n pagePaths: Array<string>,\n activity: IActivity,\n workerPool: IWorkerPool\n): Promise<void> => {\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: pagePaths.length,\n })\n\n try {\n await renderHTMLQueue(workerPool, activity, rendererPath, pagePaths)\n } catch (error) {\n const prettyError = await createErrorFromString(\n error.stack,\n `${rendererPath}.map`\n )\n const buildError = new BuildHTMLError(prettyError)\n buildError.context = error.context\n throw buildError\n }\n}\n\n// TODO remove in v4 - this could be a \"public\" api\nexport const buildHTML = async ({\n program,\n stage,\n pagePaths,\n activity,\n workerPool,\n}: {\n program: IProgram\n stage: Stage\n pagePaths: Array<string>\n activity: IActivity\n workerPool: IWorkerPool\n}): Promise<void> => {\n const rendererPath = await buildRenderer(program, stage, activity.span)\n await doBuildPages(rendererPath, pagePaths, activity, workerPool)\n await deleteRenderer(rendererPath)\n}\n"],"file":"build-html.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/commands/build-html.ts"],"names":["devssrWebpackCompiler","devssrWebpackWatcher","needToRecompileSSRBundle","getDevSSRWebpack","process","env","gatsby_executing_command","Error","oldHash","newHash","runWebpack","compilerConfig","stage","directory","Bluebird","resolve","reject","GATSBY_EXPERIMENTAL_DEV_SSR","run","err","stats","hooks","invalid","tap","file","watch","ignored","emitter","emit","suspend","hash","restartWorker","require","doBuildRenderer","webpackConfig","hasErrors","reporter","panic","compilation","errors","buildRenderer","program","parentSpan","config","deleteRenderer","rendererPath","fs","remove","e","renderHTMLQueue","workerPool","activity","htmlComponentRendererPath","pages","envVars","NODE_ENV","gatsby_log_level","segments","map","pageSegment","renderHTML","paths","tick","length","BuildHTMLError","constructor","error","message","codeFrame","Object","getOwnPropertyNames","forEach","key","doBuildPages","pagePaths","prettyError","stack","buildError","context","buildHTML","span"],"mappings":"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","sourcesContent":["import Bluebird from \"bluebird\"\nimport fs from \"fs-extra\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { createErrorFromString } from \"gatsby-cli/lib/reporter/errors\"\nimport { chunk } from \"lodash\"\nimport webpack from \"webpack\"\n\nimport { emitter } from \"../redux\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\n\nimport { IProgram, Stage } from \"./types\"\n\ntype IActivity = any // TODO\ntype IWorkerPool = any // TODO\n\nexport interface IWebpackWatchingPauseResume extends webpack.Watching {\n suspend: () => void\n resume: () => void\n}\n\nlet devssrWebpackCompiler: webpack.Compiler\nlet devssrWebpackWatcher: IWebpackWatchingPauseResume\nlet needToRecompileSSRBundle = true\nexport const getDevSSRWebpack = (): Record<\n IWebpackWatchingPauseResume,\n webpack.Compiler,\n needToRecompileSSRBundle\n> => {\n if (process.env.gatsby_executing_command !== `develop`) {\n throw new Error(`This function can only be called in development`)\n }\n\n return {\n devssrWebpackWatcher,\n devssrWebpackCompiler,\n needToRecompileSSRBundle,\n }\n}\n\nlet oldHash = ``\nlet newHash = ``\nconst runWebpack = (\n compilerConfig,\n stage: Stage,\n directory\n): Bluebird<webpack.Stats> =>\n new Bluebird((resolve, reject) => {\n if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR || stage === `build-html`) {\n webpack(compilerConfig).run((err, stats) => {\n if (err) {\n return reject(err)\n } else {\n return resolve(stats)\n }\n })\n } else if (\n process.env.GATSBY_EXPERIMENTAL_DEV_SSR &&\n stage === `develop-html`\n ) {\n devssrWebpackCompiler = webpack(compilerConfig)\n devssrWebpackCompiler.hooks.invalid.tap(`ssr file invalidation`, file => {\n needToRecompileSSRBundle = true\n })\n devssrWebpackWatcher = devssrWebpackCompiler.watch(\n {\n ignored: /node_modules/,\n },\n (err, stats) => {\n needToRecompileSSRBundle = false\n emitter.emit(`DEV_SSR_COMPILATION_DONE`)\n devssrWebpackWatcher.suspend()\n\n if (err) {\n return reject(err)\n } else {\n newHash = stats.hash || ``\n\n const {\n restartWorker,\n } = require(`../utils/dev-ssr/render-dev-html`)\n // Make sure we use the latest version during development\n if (oldHash !== `` && newHash !== oldHash) {\n restartWorker(`${directory}/public/render-page.js`)\n }\n\n oldHash = newHash\n\n return resolve(stats)\n }\n }\n )\n }\n })\n\nconst doBuildRenderer = async (\n { directory }: IProgram,\n webpackConfig: webpack.Configuration,\n stage: Stage\n): Promise<string> => {\n const stats = await runWebpack(webpackConfig, stage, directory)\n if (stats.hasErrors()) {\n reporter.panic(structureWebpackErrors(stage, stats.compilation.errors))\n }\n\n // render-page.js is hard coded in webpack.config\n return `${directory}/public/render-page.js`\n}\n\nexport const buildRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<string> => {\n const { directory } = program\n const config = await webpackConfig(program, directory, stage, null, {\n parentSpan,\n })\n\n return doBuildRenderer(program, config, stage)\n}\n\nexport const deleteRenderer = async (rendererPath: string): Promise<void> => {\n try {\n await fs.remove(rendererPath)\n await fs.remove(`${rendererPath}.map`)\n } catch (e) {\n // This function will fail on Windows with no further consequences.\n }\n}\n\nconst renderHTMLQueue = async (\n workerPool: IWorkerPool,\n activity: IActivity,\n htmlComponentRendererPath: string,\n pages: Array<string>\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n\n await Bluebird.map(segments, async pageSegment => {\n await workerPool.renderHTML({\n envVars,\n htmlComponentRendererPath,\n paths: pageSegment,\n })\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n}\n\nclass BuildHTMLError extends Error {\n codeFrame = ``\n context?: {\n path: string\n }\n\n constructor(error: Error) {\n super(error.message)\n\n // We must use getOwnProperty because keys like `stack` are not enumerable,\n // but we want to copy over the entire error\n Object.getOwnPropertyNames(error).forEach(key => {\n this[key] = error[key]\n })\n }\n}\n\nexport const doBuildPages = async (\n rendererPath: string,\n pagePaths: Array<string>,\n activity: IActivity,\n workerPool: IWorkerPool\n): Promise<void> => {\n try {\n await renderHTMLQueue(workerPool, activity, rendererPath, pagePaths)\n } catch (error) {\n const prettyError = await createErrorFromString(\n error.stack,\n `${rendererPath}.map`\n )\n const buildError = new BuildHTMLError(prettyError)\n buildError.context = error.context\n throw buildError\n }\n}\n\n// TODO remove in v4 - this could be a \"public\" api\nexport const buildHTML = async ({\n program,\n stage,\n pagePaths,\n activity,\n workerPool,\n}: {\n program: IProgram\n stage: Stage\n pagePaths: Array<string>\n activity: IActivity\n workerPool: IWorkerPool\n}): Promise<void> => {\n const rendererPath = await buildRenderer(program, stage, activity.span)\n await doBuildPages(rendererPath, pagePaths, activity, workerPool)\n await deleteRenderer(rendererPath)\n}\n"],"file":"build-html.js"}
|
package/dist/commands/build.js
CHANGED
|
@@ -241,6 +241,13 @@ module.exports = async function build(program) {
|
|
|
241
241
|
buildSSRBundleActivityProgress.end();
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
+
_gatsbyTelemetry.default.addSiteMeasurement(`BUILD_END`, {
|
|
245
|
+
pagesCount: pagePaths.length,
|
|
246
|
+
// number of html files that will be written
|
|
247
|
+
totalPagesCount: _redux.store.getState().pages.size // total number of pages
|
|
248
|
+
|
|
249
|
+
});
|
|
250
|
+
|
|
244
251
|
const buildHTMLActivityProgress = _reporter.default.createProgress(`Building static HTML for pages`, pagePaths.length, 0, {
|
|
245
252
|
parentSpan: buildSpan
|
|
246
253
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/build.ts"],"names":["cachedPageData","cachedWebpackCompilationHash","process","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","pageData","webpackCompilationHash","module","exports","build","program","report","setVerbose","verbose","profile","warn","name","sitePackageJson","sitePath","directory","lastRun","Date","now","pid","publicDir","path","join","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","parentSpan","graphqlRunner","GraphQLRunner","store","collectStats","graphqlTracing","queryIds","graphql","buildActivityTimer","activityTimer","stats","err","panic","Stage","BuildJavascript","end","workerPool","WorkerPool","create","hash","getState","appDataUtil","exists","dispatch","type","payload","rewriteActivityTimer","write","pages","forEach","_value","key","has","boundActionCreators","removePageData","id","isTrackingEnabled","bundleSizes","toJson","assets","filter","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","setProgramStatus","db","saveState","pagePaths","keys","buildUtils","getChangedPageDataKeys","info","stripIndent","buildSSRBundleActivityProgress","pageRenderer","BuildHTML","buildHTMLActivityProgress","createProgress","length","context","errorPath","ref","match","message","error","keepPageRenderer","deletedPageKeys","deletePageDataActivityTimer","collectRemovedPageData","removePageFiles","postBuildActivityTimer","uptime","finish","argv","includes","createdFilesPath","resolve","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\"\n\nimport { doBuildPages, buildRenderer, deleteRenderer } 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 db from \"../db\"\nimport { store, readState } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport * as WorkerPool from \"../utils/worker/pool\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport * as buildUtils from \"./build-utils\"\nimport { boundActionCreators } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { IProgram, Stage } from \"./types\"\nimport { PackageJson } from \"../..\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { updateSiteMetadata } from \"gatsby-core-utils\"\n\nlet cachedPageData\nlet cachedWebpackCompilationHash\nif (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pageData, webpackCompilationHash } = readState()\n // extract only data that we need to reuse and let v8 garbage collect rest of state\n cachedPageData = pageData\n cachedWebpackCompilationHash = webpackCompilationHash\n}\n\ninterface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n keepPageRenderer: boolean\n}\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\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(program.openTracingConfigFile)\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, { exitCode })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction } = await bootstrap({\n program,\n parentSpan: buildSpan,\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 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 await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n let stats\n try {\n stats = await buildProductionBundle(program, buildActivityTimer.span)\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n const workerPool = WorkerPool.create()\n\n const webpackCompilationHash = stats.hash\n if (\n webpackCompilationHash !== store.getState().webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash)\n\n rewriteActivityTimer.end()\n }\n\n await flushPendingPageDataWrites()\n markWebpackStatusAsDone()\n\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pages } = store.getState()\n if (cachedPageData) {\n cachedPageData.forEach((_value, key) => {\n if (!pages.has(key)) {\n boundActionCreators.removePageData({\n id: key,\n })\n }\n })\n }\n }\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = stats\n .toJson({ assets: true })\n .assets.filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n boundActionCreators.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 let pagePaths = [...store.getState().pages.keys()]\n\n // Rebuild subset of pages if user opt into GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES\n // if there were no source files (for example components, static queries, etc) changes since last build, otherwise rebuild all pages\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n if (\n cachedWebpackCompilationHash === store.getState().webpackCompilationHash\n ) {\n pagePaths = buildUtils.getChangedPageDataKeys(\n store.getState(),\n cachedPageData\n )\n } else if (cachedWebpackCompilationHash) {\n report.info(\n report.stripIndent(`\n One or more of your source files have changed since the last time you ran Gatsby. All\n pages will be rebuilt.\n `)\n )\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n let pageRenderer: string\n try {\n pageRenderer = await buildRenderer(program, Stage.BuildHTML, buildSpan)\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n const buildHTMLActivityProgress = report.createProgress(\n `Building static HTML for pages`,\n pagePaths.length,\n 0,\n {\n parentSpan: buildSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await doBuildPages(\n pageRenderer,\n pagePaths,\n buildHTMLActivityProgress,\n workerPool\n )\n } catch (err) {\n let id = `95313` // TODO: verify error IDs exist\n const context = {\n errorPath: err.context && err.context.path,\n ref: ``,\n }\n\n const match = err.message.match(\n /ReferenceError: (window|document|localStorage|navigator|alert|location) is not defined/i\n )\n if (match && match[1]) {\n id = `95312`\n context.ref = match[1]\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n\n if (!program.keepPageRenderer) {\n try {\n await deleteRenderer(pageRenderer)\n } catch (err) {\n // pass through\n }\n }\n\n let deletedPageKeys: Array<string> = []\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const deletePageDataActivityTimer = report.activityTimer(\n `Delete previous page data`\n )\n deletePageDataActivityTimer.start()\n deletedPageKeys = buildUtils.collectRemovedPageData(\n store.getState(),\n cachedPageData\n )\n await buildUtils.removePageFiles(publicDir, deletedPageKeys)\n\n deletePageDataActivityTimer.end()\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\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 // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n workerPool.end()\n buildActivity.end()\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--log-pages`)\n ) {\n if (pagePaths.length) {\n report.info(\n `Built pages:\\n${pagePaths\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (deletedPageKeys.length) {\n report.info(\n `Deleted pages:\\n${deletedPageKeys\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--write-to-file`)\n ) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = pagePaths.length\n ? `${pagePaths.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = deletedPageKeys.length\n ? `${deletedPageKeys.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 (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":["cachedPageData","cachedWebpackCompilationHash","process","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","pageData","webpackCompilationHash","module","exports","build","program","report","setVerbose","verbose","profile","warn","name","sitePackageJson","sitePath","directory","lastRun","Date","now","pid","publicDir","path","join","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","parentSpan","graphqlRunner","GraphQLRunner","store","collectStats","graphqlTracing","queryIds","graphql","buildActivityTimer","activityTimer","stats","err","panic","Stage","BuildJavascript","end","workerPool","WorkerPool","create","hash","getState","appDataUtil","exists","dispatch","type","payload","rewriteActivityTimer","write","pages","forEach","_value","key","has","boundActionCreators","removePageData","id","isTrackingEnabled","bundleSizes","toJson","assets","filter","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","setProgramStatus","db","saveState","pagePaths","keys","buildUtils","getChangedPageDataKeys","info","stripIndent","buildSSRBundleActivityProgress","pageRenderer","BuildHTML","pagesCount","length","totalPagesCount","buildHTMLActivityProgress","createProgress","context","errorPath","ref","match","message","error","keepPageRenderer","deletedPageKeys","deletePageDataActivityTimer","collectRemovedPageData","removePageFiles","postBuildActivityTimer","uptime","finish","argv","includes","createdFilesPath","resolve","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","writeFile"],"mappings":";;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AAEA;;AAMA;;AAIA;;AAEA,IAAIA,cAAJ;AACA,IAAIC,4BAAJ;;AACA,IAAIC,OAAO,CAACC,GAAR,CAAYC,8CAAhB,EAAgE;AAC9D,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAuC,uBAA7C,CAD8D,CAE9D;;AACAN,EAAAA,cAAc,GAAGK,QAAjB;AACAJ,EAAAA,4BAA4B,GAAGK,sBAA/B;AACD;;AAaDC,MAAM,CAACC,OAAP,GAAiB,eAAeC,KAAf,CAAqBC,OAArB,EAAyD;AACxEC,oBAAOC,UAAP,CAAkBF,OAAO,CAACG,OAA1B;;AAEA,MAAIH,OAAO,CAACI,OAAZ,EAAqB;AACnBH,sBAAOI,IAAP,CACG,sKADH;AAGD;;AAED,QAAM,yCAAmB;AACvBC,IAAAA,IAAI,EAAEN,OAAO,CAACO,eAAR,CAAwBD,IADP;AAEvBE,IAAAA,QAAQ,EAAER,OAAO,CAACS,SAFK;AAGvBC,IAAAA,OAAO,EAAEC,IAAI,CAACC,GAAL,EAHc;AAIvBC,IAAAA,GAAG,EAAErB,OAAO,CAACqB;AAJU,GAAnB,CAAN;AAOA;;AAEA,QAAMC,SAAS,GAAGC,cAAKC,IAAL,CAAUhB,OAAO,CAACS,SAAlB,EAA8B,QAA9B,CAAlB;;AACA,0BAAWT,OAAO,CAACiB,qBAAnB;;AACA,QAAMC,aAAa,GAAGjB,kBAAOkB,eAAP,CAAwB,OAAxB,CAAtB;;AACAD,EAAAA,aAAa,CAACE,KAAd;;AAEAC,2BAAUC,QAAV,CAAoB,aAApB;;AACA,2BAAWC,QAAQ,IAAI;AACrBF,6BAAUC,QAAV,CAAoB,WAApB,EAAgC;AAAEC,MAAAA;AAAF,KAAhC;AACD,GAFD;AAIA,QAAMC,SAAS,GAAGN,aAAa,CAACO,IAAhC;AACAD,EAAAA,SAAS,CAACE,MAAV,CAAkB,WAAlB,EAA8B1B,OAAO,CAACS,SAAtC;AAEA,QAAM;AAAEkB,IAAAA;AAAF,MAAgC,MAAM,0BAAU;AACpD3B,IAAAA,OADoD;AAEpD4B,IAAAA,UAAU,EAAEJ;AAFwC,GAAV,CAA5C;AAKA,QAAMK,aAAa,GAAG,IAAIC,4BAAJ,CAAkBC,YAAlB,EAAyB;AAC7CC,IAAAA,YAAY,EAAE,IAD+B;AAE7CC,IAAAA,cAAc,EAAEjC,OAAO,CAACiC;AAFqB,GAAzB,CAAtB;AAKA,QAAM;AAAEC,IAAAA;AAAF,MAAe,MAAM,qCAAsB;AAAEH,IAAAA,KAAK,EAALA;AAAF,GAAtB,CAA3B;AAEA,QAAM,gCAAiB;AACrBG,IAAAA,QADqB;AAErBN,IAAAA,UAAU,EAAEJ,SAFS;AAGrBO,IAAAA,KAAK,EAALA,YAHqB;AAIrBF,IAAAA;AAJqB,GAAjB,CAAN;AAOA,QAAM,8BAAe;AACnBK,IAAAA,QADmB;AAEnBL,IAAAA,aAFmB;AAGnBD,IAAAA,UAAU,EAAEJ,SAHO;AAInBO,IAAAA,KAAK,EAALA;AAJmB,GAAf,CAAN;AAOA,QAAM,gCAAiB;AACrBA,IAAAA,KAAK,EAALA,YADqB;AAErBH,IAAAA,UAAU,EAAEJ;AAFS,GAAjB,CAAN;AAKA,QAAM,4BAAe,YAAf,EAA4B;AAChCW,IAAAA,OAAO,EAAER,yBADuB;AAEhCC,IAAAA,UAAU,EAAEJ;AAFoB,GAA5B,CAAN,CA9DwE,CAmExE;AACA;;AACA;;AAEA,QAAMY,kBAAkB,GAAGnC,kBAAOoC,aAAP,CACxB,gDADwB,EAEzB;AAAET,IAAAA,UAAU,EAAEJ;AAAd,GAFyB,CAA3B;;AAIAY,EAAAA,kBAAkB,CAAChB,KAAnB;AACA,MAAIkB,KAAJ;;AACA,MAAI;AACFA,IAAAA,KAAK,GAAG,MAAM,4CAAsBtC,OAAtB,EAA+BoC,kBAAkB,CAACX,IAAlD,CAAd;AACD,GAFD,CAEE,OAAOc,GAAP,EAAY;AACZH,IAAAA,kBAAkB,CAACI,KAAnB,CAAyB,+CAAuBC,aAAMC,eAA7B,EAA8CH,GAA9C,CAAzB;AACD,GAJD,SAIU;AACRH,IAAAA,kBAAkB,CAACO,GAAnB;AACD;;AAED,QAAMC,UAAU,GAAGC,UAAU,CAACC,MAAX,EAAnB;AAEA,QAAMlD,sBAAsB,GAAG0C,KAAK,CAACS,IAArC;;AACA,MACEnD,sBAAsB,KAAKmC,aAAMiB,QAAN,GAAiBpD,sBAA5C,IACA,CAACqD,WAAW,CAACC,MAAZ,CAAmBpC,SAAnB,CAFH,EAGE;AACAiB,iBAAMoB,QAAN,CAAe;AACbC,MAAAA,IAAI,EAAG,8BADM;AAEbC,MAAAA,OAAO,EAAEzD;AAFI,KAAf;;AAKA,UAAM0D,oBAAoB,GAAGrD,kBAAOoC,aAAP,CAC1B,8BAD0B,EAE3B;AACET,MAAAA,UAAU,EAAEJ;AADd,KAF2B,CAA7B;;AAMA8B,IAAAA,oBAAoB,CAAClC,KAArB;AAEA,UAAM6B,WAAW,CAACM,KAAZ,CAAkBzC,SAAlB,EAA6BlB,sBAA7B,CAAN;AAEA0D,IAAAA,oBAAoB,CAACX,GAArB;AACD;;AAED,QAAM,sBAAN;AACA;;AAEA,MAAInD,OAAO,CAACC,GAAR,CAAYC,8CAAhB,EAAgE;AAC9D,UAAM;AAAE8D,MAAAA;AAAF,QAAYzB,aAAMiB,QAAN,EAAlB;;AACA,QAAI1D,cAAJ,EAAoB;AAClBA,MAAAA,cAAc,CAACmE,OAAf,CAAuB,CAACC,MAAD,EAASC,GAAT,KAAiB;AACtC,YAAI,CAACH,KAAK,CAACI,GAAN,CAAUD,GAAV,CAAL,EAAqB;AACnBE,uCAAoBC,cAApB,CAAmC;AACjCC,YAAAA,EAAE,EAAEJ;AAD6B,WAAnC;AAGD;AACF,OAND;AAOD;AACF;;AAED,MAAItC,yBAAU2C,iBAAV,EAAJ,EAAmC;AACjC;AACA,UAAMC,WAAW,GAAG3B,KAAK,CACtB4B,MADiB,CACV;AAAEC,MAAAA,MAAM,EAAE;AAAV,KADU,EAEjBA,MAFiB,CAEVC,MAFU,CAEHC,KAAK,IAAIA,KAAK,CAAC/D,IAAN,CAAWgE,QAAX,CAAqB,KAArB,CAFN,EAGjBC,GAHiB,CAGbF,KAAK,IAAIA,KAAK,CAACG,IAAN,GAAa,IAHT,CAApB;AAIA,UAAMC,aAAa,GAAG,CAAC,GAAG1C,aAAMiB,QAAN,GAAiB0B,aAAjB,CAA+BC,MAA/B,EAAJ,CAAtB;;AAEAtD,6BAAUuD,kBAAV,CAA8B,WAA9B,EAA0C;AACxCC,MAAAA,WAAW,EAAExD,yBAAUyD,cAAV,CAAyBb,WAAzB,CAD2B;AAExCS,MAAAA,aAAa,EAAErD,yBAAUyD,cAAV,CAAyBL,aAAzB,CAFyB;AAGxCM,MAAAA,UAAU,EAAElD,aAAa,CAACmD,QAAd;AAH4B,KAA1C;AAKD;;AAEDnB,+BAAoBoB,gBAApB,CAAsC,kCAAtC;;AAEA,QAAMC,YAAGC,SAAH,EAAN;AAEA,QAAM,sDAAN,CAjJwE,CAmJxE;;AACA,QAAMD,YAAGC,SAAH,EAAN;AAEA,MAAIC,SAAS,GAAG,CAAC,GAAGrD,aAAMiB,QAAN,GAAiBQ,KAAjB,CAAuB6B,IAAvB,EAAJ,CAAhB,CAtJwE,CAwJxE;AACA;;AACA,MAAI7F,OAAO,CAACC,GAAR,CAAYC,8CAAhB,EAAgE;AAC9D,QACEH,4BAA4B,KAAKwC,aAAMiB,QAAN,GAAiBpD,sBADpD,EAEE;AACAwF,MAAAA,SAAS,GAAGE,UAAU,CAACC,sBAAX,CACVxD,aAAMiB,QAAN,EADU,EAEV1D,cAFU,CAAZ;AAID,KAPD,MAOO,IAAIC,4BAAJ,EAAkC;AACvCU,wBAAOuF,IAAP,CACEvF,kBAAOwF,WAAP,CAAoB;AAC5B;AACA;AACA,SAHQ,CADF;AAMD;AACF;;AAED,QAAMC,8BAA8B,GAAGzF,kBAAOoC,aAAP,CACpC,wBADoC,EAErC;AAAET,IAAAA,UAAU,EAAEJ;AAAd,GAFqC,CAAvC;;AAIAkE,EAAAA,8BAA8B,CAACtE,KAA/B;AACA,MAAIuE,YAAJ;;AACA,MAAI;AACFA,IAAAA,YAAY,GAAG,MAAM,8BAAc3F,OAAd,EAAuByC,aAAMmD,SAA7B,EAAwCpE,SAAxC,CAArB;AACD,GAFD,CAEE,OAAOe,GAAP,EAAY;AACZH,IAAAA,kBAAkB,CAACI,KAAnB,CAAyB,+CAAuBC,aAAMmD,SAA7B,EAAwCrD,GAAxC,CAAzB;AACD,GAJD,SAIU;AACRmD,IAAAA,8BAA8B,CAAC/C,GAA/B;AACD;;AAEDtB,2BAAUuD,kBAAV,CAA8B,WAA9B,EAA0C;AACxCiB,IAAAA,UAAU,EAAET,SAAS,CAACU,MADkB;AACV;AAC9BC,IAAAA,eAAe,EAAEhE,aAAMiB,QAAN,GAAiBQ,KAAjB,CAAuBgB,IAFA,CAEM;;AAFN,GAA1C;;AAKA,QAAMwB,yBAAyB,GAAG/F,kBAAOgG,cAAP,CAC/B,gCAD+B,EAEhCb,SAAS,CAACU,MAFsB,EAGhC,CAHgC,EAIhC;AACElE,IAAAA,UAAU,EAAEJ;AADd,GAJgC,CAAlC;;AAQAwE,EAAAA,yBAAyB,CAAC5E,KAA1B;;AACA,MAAI;AACF,UAAM,6BACJuE,YADI,EAEJP,SAFI,EAGJY,yBAHI,EAIJpD,UAJI,CAAN;AAMD,GAPD,CAOE,OAAOL,GAAP,EAAY;AACZ,QAAIwB,EAAE,GAAI,OAAV,CADY,CACK;;AACjB,UAAMmC,OAAO,GAAG;AACdC,MAAAA,SAAS,EAAE5D,GAAG,CAAC2D,OAAJ,IAAe3D,GAAG,CAAC2D,OAAJ,CAAYnF,IADxB;AAEdqF,MAAAA,GAAG,EAAG;AAFQ,KAAhB;AAKA,UAAMC,KAAK,GAAG9D,GAAG,CAAC+D,OAAJ,CAAYD,KAAZ,CACZ,yFADY,CAAd;;AAGA,QAAIA,KAAK,IAAIA,KAAK,CAAC,CAAD,CAAlB,EAAuB;AACrBtC,MAAAA,EAAE,GAAI,OAAN;AACAmC,MAAAA,OAAO,CAACE,GAAR,GAAcC,KAAK,CAAC,CAAD,CAAnB;AACD;;AAEDL,IAAAA,yBAAyB,CAACxD,KAA1B,CAAgC;AAC9BuB,MAAAA,EAD8B;AAE9BmC,MAAAA,OAF8B;AAG9BK,MAAAA,KAAK,EAAEhE;AAHuB,KAAhC;AAKD;;AACDyD,EAAAA,yBAAyB,CAACrD,GAA1B;;AAEA,MAAI,CAAC3C,OAAO,CAACwG,gBAAb,EAA+B;AAC7B,QAAI;AACF,YAAM,+BAAeb,YAAf,CAAN;AACD,KAFD,CAEE,OAAOpD,GAAP,EAAY,CACZ;AACD;AACF;;AAED,MAAIkE,eAA8B,GAAG,EAArC;;AACA,MAAIjH,OAAO,CAACC,GAAR,CAAYC,8CAAhB,EAAgE;AAC9D,UAAMgH,2BAA2B,GAAGzG,kBAAOoC,aAAP,CACjC,2BADiC,CAApC;;AAGAqE,IAAAA,2BAA2B,CAACtF,KAA5B;AACAqF,IAAAA,eAAe,GAAGnB,UAAU,CAACqB,sBAAX,CAChB5E,aAAMiB,QAAN,EADgB,EAEhB1D,cAFgB,CAAlB;AAIA,UAAMgG,UAAU,CAACsB,eAAX,CAA2B9F,SAA3B,EAAsC2F,eAAtC,CAAN;AAEAC,IAAAA,2BAA2B,CAAC/D,GAA5B;AACD;;AAED,QAAMkE,sBAAsB,GAAG5G,kBAAOoC,aAAP,CAAsB,aAAtB,EAAoC;AACjET,IAAAA,UAAU,EAAEJ;AADqD,GAApC,CAA/B;;AAGAqF,EAAAA,sBAAsB,CAACzF,KAAvB;AACA,QAAM,4BAAe,aAAf,EAA6B;AACjCe,IAAAA,OAAO,EAAER,yBADwB;AAEjCC,IAAAA,UAAU,EAAEJ;AAFqB,GAA7B,CAAN;AAIAqF,EAAAA,sBAAsB,CAAClE,GAAvB,GArQwE,CAuQxE;AACA;;AACA,QAAM,sDAAN,CAzQwE,CA2QxE;;AACA,QAAMuC,YAAGC,SAAH,EAAN;;AAEAlF,oBAAOuF,IAAP,CAAa,oBAAmBhG,OAAO,CAACsH,MAAR,EAAiB,MAAjD;;AAEAtF,EAAAA,SAAS,CAACuF,MAAV;AACA,QAAM,yBAAN;AACAnE,EAAAA,UAAU,CAACD,GAAX;AACAzB,EAAAA,aAAa,CAACyB,GAAd;;AAEA,MACEnD,OAAO,CAACC,GAAR,CAAYC,8CAAZ,IACAF,OAAO,CAACwH,IAAR,CAAaC,QAAb,CAAuB,aAAvB,CAFF,EAGE;AACA,QAAI7B,SAAS,CAACU,MAAd,EAAsB;AACpB7F,wBAAOuF,IAAP,CACG,iBAAgBJ,SAAS,CACvBb,GADc,CACVxD,IAAI,IAAK,iBAAgBA,IAAK,EADpB,EAEdC,IAFc,CAER,IAFQ,CAEH,EAHhB;AAKD;;AAED,QAAIyF,eAAe,CAACX,MAApB,EAA4B;AAC1B7F,wBAAOuF,IAAP,CACG,mBAAkBiB,eAAe,CAC/BlC,GADgB,CACZxD,IAAI,IAAK,iBAAgBA,IAAK,EADlB,EAEhBC,IAFgB,CAEV,IAFU,CAEL,EAHhB;AAKD;AACF;;AAED,MACExB,OAAO,CAACC,GAAR,CAAYC,8CAAZ,IACAF,OAAO,CAACwH,IAAR,CAAaC,QAAb,CAAuB,iBAAvB,CAFF,EAGE;AACA,UAAMC,gBAAgB,GAAGnG,cAAKoG,OAAL,CACtB,GAAEnH,OAAO,CAACS,SAAU,SADE,EAEtB,cAFsB,CAAzB;;AAIA,UAAM2G,mBAAmB,GAAGhC,SAAS,CAACU,MAAV,GACvB,GAAEV,SAAS,CAACpE,IAAV,CAAgB,IAAhB,CAAqB,IADA,GAEvB,EAFL;;AAIA,UAAMqG,gBAAgB,GAAGtG,cAAKoG,OAAL,CACtB,GAAEnH,OAAO,CAACS,SAAU,SADE,EAEtB,kBAFsB,CAAzB;;AAIA,UAAM6G,mBAAmB,GAAGb,eAAe,CAACX,MAAhB,GACvB,GAAEW,eAAe,CAACzF,IAAhB,CAAsB,IAAtB,CAA2B,IADN,GAEvB,EAFL;AAIA,UAAMuG,iBAAGC,SAAH,CAAaN,gBAAb,EAA+BE,mBAA/B,EAAqD,MAArD,CAAN;;AACAnH,sBAAOuF,IAAP,CAAa,6BAAb;;AAEA,UAAM+B,iBAAGC,SAAH,CAAaH,gBAAb,EAA+BC,mBAA/B,EAAqD,MAArD,CAAN;;AACArH,sBAAOuF,IAAP,CAAa,iCAAb;AACD;;AAED,MAAI,MAAM,yCAAV,EAAsC;AACpC;AACD,GAFD,MAEO,IAAI,MAAM,mDAAV,EAAgD;AACrD;AACD;AACF,CA1UD","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\"\n\nimport { doBuildPages, buildRenderer, deleteRenderer } 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 db from \"../db\"\nimport { store, readState } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport * as WorkerPool from \"../utils/worker/pool\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport * as buildUtils from \"./build-utils\"\nimport { boundActionCreators } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { IProgram, Stage } from \"./types\"\nimport { PackageJson } from \"../..\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { updateSiteMetadata } from \"gatsby-core-utils\"\n\nlet cachedPageData\nlet cachedWebpackCompilationHash\nif (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pageData, webpackCompilationHash } = readState()\n // extract only data that we need to reuse and let v8 garbage collect rest of state\n cachedPageData = pageData\n cachedWebpackCompilationHash = webpackCompilationHash\n}\n\ninterface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n keepPageRenderer: boolean\n}\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\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(program.openTracingConfigFile)\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, { exitCode })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction } = await bootstrap({\n program,\n parentSpan: buildSpan,\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 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 await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n let stats\n try {\n stats = await buildProductionBundle(program, buildActivityTimer.span)\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n const workerPool = WorkerPool.create()\n\n const webpackCompilationHash = stats.hash\n if (\n webpackCompilationHash !== store.getState().webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash)\n\n rewriteActivityTimer.end()\n }\n\n await flushPendingPageDataWrites()\n markWebpackStatusAsDone()\n\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pages } = store.getState()\n if (cachedPageData) {\n cachedPageData.forEach((_value, key) => {\n if (!pages.has(key)) {\n boundActionCreators.removePageData({\n id: key,\n })\n }\n })\n }\n }\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = stats\n .toJson({ assets: true })\n .assets.filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n boundActionCreators.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 let pagePaths = [...store.getState().pages.keys()]\n\n // Rebuild subset of pages if user opt into GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES\n // if there were no source files (for example components, static queries, etc) changes since last build, otherwise rebuild all pages\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n if (\n cachedWebpackCompilationHash === store.getState().webpackCompilationHash\n ) {\n pagePaths = buildUtils.getChangedPageDataKeys(\n store.getState(),\n cachedPageData\n )\n } else if (cachedWebpackCompilationHash) {\n report.info(\n report.stripIndent(`\n One or more of your source files have changed since the last time you ran Gatsby. All\n pages will be rebuilt.\n `)\n )\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n let pageRenderer: string\n try {\n pageRenderer = await buildRenderer(program, Stage.BuildHTML, buildSpan)\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: pagePaths.length, // number of html files that will be written\n totalPagesCount: store.getState().pages.size, // total number of pages\n })\n\n const buildHTMLActivityProgress = report.createProgress(\n `Building static HTML for pages`,\n pagePaths.length,\n 0,\n {\n parentSpan: buildSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await doBuildPages(\n pageRenderer,\n pagePaths,\n buildHTMLActivityProgress,\n workerPool\n )\n } catch (err) {\n let id = `95313` // TODO: verify error IDs exist\n const context = {\n errorPath: err.context && err.context.path,\n ref: ``,\n }\n\n const match = err.message.match(\n /ReferenceError: (window|document|localStorage|navigator|alert|location) is not defined/i\n )\n if (match && match[1]) {\n id = `95312`\n context.ref = match[1]\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n\n if (!program.keepPageRenderer) {\n try {\n await deleteRenderer(pageRenderer)\n } catch (err) {\n // pass through\n }\n }\n\n let deletedPageKeys: Array<string> = []\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const deletePageDataActivityTimer = report.activityTimer(\n `Delete previous page data`\n )\n deletePageDataActivityTimer.start()\n deletedPageKeys = buildUtils.collectRemovedPageData(\n store.getState(),\n cachedPageData\n )\n await buildUtils.removePageFiles(publicDir, deletedPageKeys)\n\n deletePageDataActivityTimer.end()\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\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 // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n workerPool.end()\n buildActivity.end()\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--log-pages`)\n ) {\n if (pagePaths.length) {\n report.info(\n `Built pages:\\n${pagePaths\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (deletedPageKeys.length) {\n report.info(\n `Deleted pages:\\n${deletedPageKeys\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--write-to-file`)\n ) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = pagePaths.length\n ? `${pagePaths.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = deletedPageKeys.length\n ? `${deletedPageKeys.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 (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","telemetry","trackCli","siteMeasurements","
|
|
1
|
+
{"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","telemetry","trackCli","siteMeasurements","totalPagesCount","store","getState","pages","size","on","msg","action","exit","payload","openDebuggerPort","debugInfo","inspector","url","undefined","break","open","port","module","exports","program","reporter","setVerbose","verbose","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","panic","chalk","yellow","cyan","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 chalk from \"chalk\"\nimport telemetry from \"gatsby-telemetry\"\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 telemetry.trackCli(`DEVELOP_STOP`, {\n siteMeasurements: {\n totalPagesCount: store.getState().pages.size,\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 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(\n `SIGINT`,\n async (): Promise<void> => {\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n process.exit(0)\n }\n )\n\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n reporter.panic(\n `The flag ${chalk.yellow(\n `GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES`\n )} is not available with ${chalk.cyan(\n `gatsby develop`\n )}, please retry using ${chalk.cyan(`gatsby build`)}`\n )\n }\n initTracer(program.openTracingConfigFile)\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"}
|
|
@@ -265,7 +265,7 @@ export declare const actions: {
|
|
|
265
265
|
* actions.createResolverContext({ getHtml })
|
|
266
266
|
* }
|
|
267
267
|
* // The context value can then be accessed in any field resolver like this:
|
|
268
|
-
* exports.createSchemaCustomization = ({ actions }) => {
|
|
268
|
+
* exports.createSchemaCustomization = ({ actions, schema }) => {
|
|
269
269
|
* actions.createTypes(schema.buildObjectType({
|
|
270
270
|
* name: 'Test',
|
|
271
271
|
* interfaces: ['Node'],
|
|
@@ -323,7 +323,7 @@ const actions = {
|
|
|
323
323
|
* actions.createResolverContext({ getHtml })
|
|
324
324
|
* }
|
|
325
325
|
* // The context value can then be accessed in any field resolver like this:
|
|
326
|
-
* exports.createSchemaCustomization = ({ actions }) => {
|
|
326
|
+
* exports.createSchemaCustomization = ({ actions, schema }) => {
|
|
327
327
|
* actions.createTypes(schema.buildObjectType({
|
|
328
328
|
* name: 'Test',
|
|
329
329
|
* interfaces: ['Node'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/redux/actions/restricted.ts"],"names":["actions","addThirdPartySchema","schema","plugin","traceId","type","payload","createTypes","types","Array","isArray","map","parseTypeDef","createFieldExtension","extension","dispatch","getState","name","fieldExtensions","schemaCustomization","report","error","reservedExtensionNames","includes","printTypeDefinitions","path","include","exclude","withFieldTypes","createResolverContext","context","replace","withDeprecationWarning","actionName","action","api","allowedIn","args","warn","a","join","withErrorMessage","nodeAPIs","Object","keys","require","ALLOWED_IN","DEPRECATED_IN","set","availableActionsByAPI","mapAvailableActionsToAPIs","restrictions","actionNames","forEach","deprecatedIn","forbiddenIn","filter"],"mappings":";;;;;;;AAAA;;AAIA;;AACA;;AACA;;AA4BO,MAAMA,OAAO,GAAG;AACrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,mBAAmB,EAAE,CACnB;AAAEC,IAAAA;AAAF,GADmB,EAEnBC,MAFmB,EAGnBC,OAHmB,KAIM;AACzB,WAAO;AACLC,MAAAA,IAAI,EAAG,wBADF;AAELF,MAAAA,MAFK;AAGLC,MAAAA,OAHK;AAILE,MAAAA,OAAO,EAAEJ;AAJJ,KAAP;AAMD,GAzBoB;;AA2BrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEK,EAAAA,WAAW,EAAE,CACXC,KADW,EAMXL,MANW,EAOXC,OAPW,KAQM;AACjB,WAAO;AACLC,MAAAA,IAAI,EAAG,cADF;AAELF,MAAAA,MAFK;AAGLC,MAAAA,OAHK;AAILE,MAAAA,OAAO,EAAEG,KAAK,CAACC,OAAN,CAAcF,KAAd,IACLA,KAAK,CAACG,GAAN,CAAUC,sBAAV,CADK,GAEL,4BAAaJ,KAAb;AANC,KAAP;AAQD,GAzLoB;;AA2LrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEK,EAAAA,oBAAoB,EAAE,CACpBC,SADoB,EAEpBX,MAFoB,EAGpBC,OAHoB,KAI2C,CAC/DW,QAD+D,EAE/DC,QAF+D,KAGtD;AACT,UAAM;AAAEC,MAAAA;AAAF,QAAWH,SAAS,IAAI,EAA9B;AACA,UAAM;AAAEI,MAAAA;AAAF,QAAsBF,QAAQ,GAAGG,mBAAvC;;AAEA,QAAI,CAACF,IAAL,EAAW;AACTG,wBAAOC,KAAP,CACG,6DADH;AAGD,KAJD,MAIO,IAAIC,mCAAuBC,QAAvB,CAAgCN,IAAhC,CAAJ,EAA2C;AAChDG,wBAAOC,KAAP,CACG,8BAA6BJ,IAAK,kCADrC;AAGD,KAJM,MAIA,IAAIC,eAAe,CAACD,IAAD,CAAnB,EAA2B;AAChCG,wBAAOC,KAAP,CACG,qCAAoCJ,IAAK,iCAD5C;AAGD,KAJM,MAIA;AACLF,MAAAA,QAAQ,CAAC;AACPV,QAAAA,IAAI,EAAG,wBADA;AAEPF,QAAAA,MAFO;AAGPC,QAAAA,OAHO;AAIPE,QAAAA,OAAO,EAAE;AAAEW,UAAAA,IAAF;AAAQH,UAAAA;AAAR;AAJF,OAAD,CAAR;AAMD;AACF,GAnQoB;;AAqQrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEU,EAAAA,oBAAoB,EAAE,CACpB;AACEC,IAAAA,IAAI,GAAI,YADV;AAEEC,IAAAA,OAFF;AAGEC,IAAAA,OAHF;AAIEC,IAAAA,cAAc,GAAG;AAJnB,GADoB,EAYpBzB,MAZoB,EAapBC,OAboB,KAcM;AAC1B,WAAO;AACLC,MAAAA,IAAI,EAAG,wBADF;AAELF,MAAAA,MAFK;AAGLC,MAAAA,OAHK;AAILE,MAAAA,OAAO,EAAE;AACPmB,QAAAA,IADO;AAEPC,QAAAA,OAFO;AAGPC,QAAAA,OAHO;AAIPC,QAAAA;AAJO;AAJJ,KAAP;AAWD,GAjUoB;;AAmUrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,qBAAqB,EAAE,CACrBC,OADqB,EAErB3B,MAFqB,EAGrBC,OAHqB,KAKrBW,QADgE,IAEvD;AACT,QAAI,CAACe,OAAD,IAAY,OAAOA,OAAP,KAAoB,QAApC,EAA6C;AAC3CV,wBAAOC,KAAP,CACG,yFAAwFS,OAAQ,IADnG;AAGD,KAJD,MAIO;AACL,YAAM;AAAEb,QAAAA;AAAF,UAAWd,MAAM,IAAI,EAA3B;AACA,YAAMG,OAAO,GACX,CAACW,IAAD,IAASA,IAAI,KAAM,qBAAnB,GACIa,OADJ,GAEI;AAAE,SAAC,uBAAUb,IAAI,CAACc,OAAL,CAAa,UAAb,EAA0B,EAA1B,CAAV,CAAD,GAA2CD;AAA7C,OAHN;AAIAf,MAAAA,QAAQ,CAAC;AACPV,QAAAA,IAAI,EAAG,yBADA;AAEPF,QAAAA,MAFO;AAGPC,QAAAA,OAHO;AAIPE,QAAAA;AAJO,OAAD,CAAR;AAMD;AACF;AAzXoB,CAAhB;;;AA4XP,MAAM0B,sBAAsB,GAAG,CAC7BC,UAD6B,EAE7BC,MAF6B,EAG7BC,GAH6B,EAI7BC,SAJ6B,KAKP,CACtB,GAAGC,IADmB,KAEa;AACnCjB,oBAAOkB,IAAP,CACG,aAAYL,UAAW,eAAcE,GAAI,wBAA1C,GACG,eAAcC,SAAS,CAACzB,GAAV,CAAc4B,CAAC,IAAK,KAAIA,CAAE,IAA1B,EAA+BC,IAA/B,CAAqC,IAArC,CAA0C,GAF7D;;AAIA,SAAON,MAAM,CAAC,GAAGG,IAAJ,CAAb;AACD,CAbD;;AAeA,MAAMI,gBAAgB,GAAG,CACvBR,UADuB,EAEvBE,GAFuB,EAGvBC,SAHuB,KAIpB,MACH;AACA,MAAY;AACVhB,oBAAOC,KAAP,CACG,KAAIY,UAAW,gCAA+BE,GAAI,UAAnD,GACG,eAAcC,SAAS,CAACzB,GAAV,CAAc4B,CAAC,IAAK,KAAIA,CAAE,IAA1B,EAA+BC,IAA/B,CAAqC,IAArC,CAA0C,GAF7D;AAID,CAXH;;AAaA,MAAME,QAAQ,GAAGC,MAAM,CAACC,IAAP,CAAYC,OAAO,CAAE,2BAAF,CAAnB,CAAjB;AAEA,MAAMC,UAAU,GAAI,YAApB;AACA,MAAMC,aAAa,GAAI,eAAvB;;AAiBA,MAAMC,GAAG,GAAG,CACVC,qBADU,EAEVd,GAFU,EAGVF,UAHU,EAIVC,MAJU,KAKD;AACTe,EAAAA,qBAAqB,CAACd,GAAD,CAArB,GAA6Bc,qBAAqB,CAACd,GAAD,CAArB,IAA8B,EAA3D;AACAc,EAAAA,qBAAqB,CAACd,GAAD,CAArB,CAA2BF,UAA3B,IAAyCC,MAAzC;AACD,CARD;;AAUA,MAAMgB,yBAAyB,GAC7BC,YADgC,IAEN;AAC1B,QAAMF,qBAA4C,GAAG,EAArD;AAEA,QAAMG,WAAW,GAAGT,MAAM,CAACC,IAAP,CAAYO,YAAZ,CAApB;AAGAC,EAAAA,WAAW,CAACC,OAAZ,CAAoBpB,UAAU,IAAI;AAChC,UAAMC,MAAM,GAAGlC,OAAO,CAACiC,UAAD,CAAtB;AAEA,UAAMG,SAAqB,GAAGe,YAAY,CAAClB,UAAD,CAAZ,CAAyBa,UAAzB,KAAwC,EAAtE;AACAV,IAAAA,SAAS,CAACiB,OAAV,CAAkBlB,GAAG,IACnBa,GAAG,CAACC,qBAAD,EAAwBd,GAAxB,EAA6BF,UAA7B,EAAyCC,MAAzC,CADL;AAIA,UAAMoB,YAAwB,GAC5BH,YAAY,CAAClB,UAAD,CAAZ,CAAyBc,aAAzB,KAA2C,EAD7C;AAEAO,IAAAA,YAAY,CAACD,OAAb,CAAqBlB,GAAG,IACtBa,GAAG,CACDC,qBADC,EAEDd,GAFC,EAGDF,UAHC,EAIDD,sBAAsB,CAACC,UAAD,EAAaC,MAAb,EAAqBC,GAArB,EAA0BC,SAA1B,CAJrB,CADL;AASA,UAAMmB,WAAW,GAAGb,QAAQ,CAACc,MAAT,CAClBrB,GAAG,IAAI,CAAC,CAAC,GAAGC,SAAJ,EAAe,GAAGkB,YAAlB,EAAgC/B,QAAhC,CAAyCY,GAAzC,CADU,CAApB;AAGAoB,IAAAA,WAAW,CAACF,OAAZ,CAAoBlB,GAAG,IACrBa,GAAG,CACDC,qBADC,EAEDd,GAFC,EAGDF,UAHC,EAIDQ,gBAAgB,CAACR,UAAD,EAAaE,GAAb,EAAkBC,SAAlB,CAJf,CADL;AAQD,GA9BD;AAgCA,SAAOa,qBAAP;AACD,CAzCD;;AA2CO,MAAMA,qBAAqB,GAAGC,yBAAyB,CAAC;AAC7DrC,EAAAA,oBAAoB,EAAE;AACpB,KAACiC,UAAD,GAAc,CAAE,aAAF,EAAiB,2BAAjB;AADM,GADuC;AAI7DvC,EAAAA,WAAW,EAAE;AACX,KAACuC,UAAD,GAAc,CAAE,aAAF,EAAiB,2BAAjB,CADH;AAEX,KAACC,aAAD,GAAiB,CAAE,WAAF,EAAe,gBAAf;AAFN,GAJgD;AAQ7DlB,EAAAA,qBAAqB,EAAE;AACrB,KAACiB,UAAD,GAAc,CAAE,2BAAF;AADO,GARsC;AAW7D7C,EAAAA,mBAAmB,EAAE;AACnB,KAAC6C,UAAD,GAAc,CAAE,aAAF,EAAiB,2BAAjB,CADK;AAEnB,KAACC,aAAD,GAAiB,CAAE,WAAF,EAAe,gBAAf;AAFE,GAXwC;AAe7DvB,EAAAA,oBAAoB,EAAE;AACpB,KAACsB,UAAD,GAAc,CAAE,2BAAF;AADM;AAfuC,CAAD,CAAvD","sourcesContent":["import { camelCase } from \"lodash\"\nimport { GraphQLSchema, GraphQLOutputType } from \"graphql\"\nimport { ActionCreator } from \"redux\"\nimport { ThunkAction } from \"redux-thunk\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport { parseTypeDef } from \"../../schema/types/type-defs\"\nimport {\n GraphQLFieldExtensionDefinition,\n reservedExtensionNames,\n} from \"../../schema/extensions\"\nimport { GatsbyGraphQLType } from \"../../schema/types/type-builders\"\nimport {\n IGatsbyPlugin,\n ActionsUnion,\n IAddThirdPartySchema,\n ICreateTypes,\n IGatsbyState,\n ICreateFieldExtension,\n IPrintTypeDefinitions,\n ICreateResolverContext,\n IGatsbyPluginContext,\n} from \"../types\"\n\ntype RestrictionActionNames =\n | \"createFieldExtension\"\n | \"createTypes\"\n | \"createResolverContext\"\n | \"addThirdPartySchema\"\n | \"printTypeDefinitions\"\n\ntype SomeActionCreator =\n | ActionCreator<ActionsUnion>\n | ActionCreator<ThunkAction<any, IGatsbyState, any, ActionsUnion>>\n\nexport const actions = {\n /**\n * Add a third-party schema to be merged into main schema. Schema has to be a\n * graphql-js GraphQLSchema object.\n *\n * This schema is going to be merged as-is. This can easily break the main\n * Gatsby schema, so it's user's responsibility to make sure it doesn't happen\n * (by e.g. namespacing the schema).\n *\n * @availableIn [createSchemaCustomization, sourceNodes]\n *\n * @param {Object} $0\n * @param {GraphQLSchema} $0.schema GraphQL schema to add\n */\n addThirdPartySchema: (\n { schema }: { schema: GraphQLSchema },\n plugin: IGatsbyPlugin,\n traceId?: string\n ): IAddThirdPartySchema => {\n return {\n type: `ADD_THIRD_PARTY_SCHEMA`,\n plugin,\n traceId,\n payload: schema,\n }\n },\n\n /**\n * Add type definitions to the GraphQL schema.\n *\n * @availableIn [createSchemaCustomization, sourceNodes]\n *\n * @param {string | GraphQLOutputType | GatsbyGraphQLType | string[] | GraphQLOutputType[] | GatsbyGraphQLType[]} types Type definitions\n *\n * Type definitions can be provided either as\n * [`graphql-js` types](https://graphql.org/graphql-js/), in\n * [GraphQL schema definition language (SDL)](https://graphql.org/learn/)\n * or using Gatsby Type Builders available on the `schema` API argument.\n *\n * Things to note:\n * * type definitions targeting node types, i.e. `MarkdownRemark` and others\n * added in `sourceNodes` or `onCreateNode` APIs, need to implement the\n * `Node` interface. Interface fields will be added automatically, but it\n * is mandatory to label those types with `implements Node`.\n * * by default, explicit type definitions from `createTypes` will be merged\n * with inferred field types, and default field resolvers for `Date` (which\n * adds formatting options) and `File` (which resolves the field value as\n * a `relativePath` foreign-key field) are added. This behavior can be\n * customised with `@infer`, `@dontInfer` directives or extensions. Fields\n * may be assigned resolver (and other option like args) with additional\n * directives. Currently `@dateformat`, `@link`, `@fileByRelativePath` and\n * `@proxy` are available.\n *\n *\n * Schema customization controls:\n * * `@infer` - run inference on the type and add fields that don't exist on the\n * defined type to it.\n * * `@dontInfer` - don't run any inference on the type\n *\n * Extensions to add resolver options:\n * * `@dateformat` - add date formatting arguments. Accepts `formatString` and\n * `locale` options that sets the defaults for this field\n * * `@link` - connect to a different Node. Arguments `by` and `from`, which\n * define which field to compare to on a remote node and which field to use on\n * the source node\n * * `@fileByRelativePath` - connect to a File node. Same arguments. The\n * difference from link is that this normalizes the relative path to be\n * relative from the path where source node is found.\n * * `@proxy` - in case the underlying node data contains field names with\n * characters that are invalid in GraphQL, `proxy` allows to explicitly\n * proxy those properties to fields with valid field names. Takes a `from` arg.\n *\n *\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * const { createTypes } = actions\n * const typeDefs = `\n * \"\"\"\n * Markdown Node\n * \"\"\"\n * type MarkdownRemark implements Node @infer {\n * frontmatter: Frontmatter!\n * }\n *\n * \"\"\"\n * Markdown Frontmatter\n * \"\"\"\n * type Frontmatter @infer {\n * title: String!\n * author: AuthorJson! @link\n * date: Date! @dateformat\n * published: Boolean!\n * tags: [String!]!\n * }\n *\n * \"\"\"\n * Author information\n * \"\"\"\n * # Does not include automatically inferred fields\n * type AuthorJson implements Node @dontInfer {\n * name: String!\n * birthday: Date! @dateformat(locale: \"ru\")\n * }\n * `\n * createTypes(typeDefs)\n * }\n *\n * // using Gatsby Type Builder API\n * exports.createSchemaCustomization = ({ actions, schema }) => {\n * const { createTypes } = actions\n * const typeDefs = [\n * schema.buildObjectType({\n * name: 'MarkdownRemark',\n * fields: {\n * frontmatter: 'Frontmatter!'\n * },\n * interfaces: ['Node'],\n * extensions: {\n * infer: true,\n * },\n * }),\n * schema.buildObjectType({\n * name: 'Frontmatter',\n * fields: {\n * title: {\n * type: 'String!',\n * resolve(parent) {\n * return parent.title || '(Untitled)'\n * }\n * },\n * author: {\n * type: 'AuthorJson'\n * extensions: {\n * link: {},\n * },\n * }\n * date: {\n * type: 'Date!'\n * extensions: {\n * dateformat: {},\n * },\n * },\n * published: 'Boolean!',\n * tags: '[String!]!',\n * }\n * }),\n * schema.buildObjectType({\n * name: 'AuthorJson',\n * fields: {\n * name: 'String!'\n * birthday: {\n * type: 'Date!'\n * extensions: {\n * dateformat: {\n * locale: 'ru',\n * },\n * },\n * },\n * },\n * interfaces: ['Node'],\n * extensions: {\n * infer: false,\n * },\n * }),\n * ]\n * createTypes(typeDefs)\n * }\n */\n createTypes: (\n types:\n | string\n | GraphQLOutputType\n | GatsbyGraphQLType<any, any>\n | Array<string | GraphQLOutputType | GatsbyGraphQLType<any, any>>,\n plugin: IGatsbyPlugin,\n traceId?: string\n ): ICreateTypes => {\n return {\n type: `CREATE_TYPES`,\n plugin,\n traceId,\n payload: Array.isArray(types)\n ? types.map(parseTypeDef)\n : parseTypeDef(types),\n }\n },\n\n /**\n * Add a field extension to the GraphQL schema.\n *\n * Extensions allow defining custom behavior which can be added to fields\n * via directive (in SDL) or on the `extensions` prop (with Type Builders).\n *\n * The extension definition takes a `name`, an `extend` function, and optional\n * extension `args` for options. The `extend` function has to return a (partial)\n * field config, and receives the extension options and the previous field config\n * as arguments.\n *\n * @availableIn [createSchemaCustomization, sourceNodes]\n *\n * @param {GraphQLFieldExtensionDefinition} extension The field extension definition\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * const { createFieldExtension } = actions\n * createFieldExtension({\n * name: 'motivate',\n * args: {\n * caffeine: 'Int'\n * },\n * extend(options, prevFieldConfig) {\n * return {\n * type: 'String',\n * args: {\n * sunshine: {\n * type: 'Int',\n * defaultValue: 0,\n * },\n * },\n * resolve(source, args, context, info) {\n * const motivation = (options.caffeine || 0) - args.sunshine\n * if (motivation > 5) return 'Work! Work! Work!'\n * return 'Maybe tomorrow.'\n * },\n * }\n * },\n * })\n * }\n */\n createFieldExtension: (\n extension: GraphQLFieldExtensionDefinition,\n plugin: IGatsbyPlugin,\n traceId?: string\n ): ThunkAction<void, IGatsbyState, {}, ICreateFieldExtension> => (\n dispatch,\n getState\n ): void => {\n const { name } = extension || {}\n const { fieldExtensions } = getState().schemaCustomization\n\n if (!name) {\n report.error(\n `The provided field extension must have a \\`name\\` property.`\n )\n } else if (reservedExtensionNames.includes(name)) {\n report.error(\n `The field extension name \\`${name}\\` is reserved for internal use.`\n )\n } else if (fieldExtensions[name]) {\n report.error(\n `A field extension with the name \\`${name}\\` has already been registered.`\n )\n } else {\n dispatch({\n type: `CREATE_FIELD_EXTENSION`,\n plugin,\n traceId,\n payload: { name, extension },\n })\n }\n },\n\n /**\n * Write GraphQL schema to file\n *\n * Writes out inferred and explicitly specified type definitions. This is not\n * the full GraphQL schema, but only the types necessary to recreate all type\n * definitions, i.e. it does not include directives, built-ins, and derived\n * types for filtering, sorting, pagination etc. Optionally, you can define a\n * list of types to include/exclude. This is recommended to avoid including\n * definitions for plugin-created types.\n *\n * The first object parameter is required, however all the fields in the object are optional.\n *\n * @availableIn [createSchemaCustomization]\n *\n * @param {object} $0\n * @param {string} [$0.path] The path to the output file, defaults to `schema.gql`\n * @param {object} [$0.include] Configure types to include\n * @param {string[]} [$0.include.types] Only include these types\n * @param {string[]} [$0.include.plugins] Only include types owned by these plugins\n * @param {object} [$0.exclude] Configure types to exclude\n * @param {string[]} [$0.exclude.types] Do not include these types\n * @param {string[]} [$0.exclude.plugins] Do not include types owned by these plugins\n * @param {boolean} [$0.withFieldTypes] Include field types, defaults to `true`\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * // This code writes a GraphQL schema to a file named `schema.gql`.\n * actions.printTypeDefinitions({})\n * }\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * // This code writes a GraphQL schema to a file named `schema.gql`, but this time it does not include field types.\n * actions.printTypeDefinitions({ withFieldTypes: false })\n * }\n */\n printTypeDefinitions: (\n {\n path = `schema.gql`,\n include,\n exclude,\n withFieldTypes = true,\n }: {\n path?: string\n include?: { types?: Array<string>; plugins?: Array<string> }\n exclude?: { types?: Array<string>; plugins?: Array<string> }\n withFieldTypes?: boolean\n },\n plugin: IGatsbyPlugin,\n traceId?: string\n ): IPrintTypeDefinitions => {\n return {\n type: `PRINT_SCHEMA_REQUESTED`,\n plugin,\n traceId,\n payload: {\n path,\n include,\n exclude,\n withFieldTypes,\n },\n }\n },\n\n /**\n * Make functionality available on field resolver `context`\n *\n * @availableIn [createSchemaCustomization]\n *\n * @param {object} context Object to make available on `context`.\n * When called from a plugin, the context value will be namespaced under\n * the camel-cased plugin name without the \"gatsby-\" prefix\n * @example\n * const getHtml = md => remark().use(html).process(md)\n * exports.createSchemaCustomization = ({ actions }) => {\n * actions.createResolverContext({ getHtml })\n * }\n * // The context value can then be accessed in any field resolver like this:\n * exports.createSchemaCustomization = ({ actions }) => {\n * actions.createTypes(schema.buildObjectType({\n * name: 'Test',\n * interfaces: ['Node'],\n * fields: {\n * md: {\n * type: 'String!',\n * async resolve(source, args, context, info) {\n * const processed = await context.transformerRemark.getHtml(source.internal.contents)\n * return processed.contents\n * }\n * }\n * }\n * }))\n * }\n */\n createResolverContext: (\n context: IGatsbyPluginContext,\n plugin: IGatsbyPlugin,\n traceId?: string\n ): ThunkAction<void, IGatsbyState, {}, ICreateResolverContext> => (\n dispatch\n ): void => {\n if (!context || typeof context !== `object`) {\n report.error(\n `Expected context value passed to \\`createResolverContext\\` to be an object. Received \"${context}\".`\n )\n } else {\n const { name } = plugin || {}\n const payload =\n !name || name === `default-site-plugin`\n ? context\n : { [camelCase(name.replace(/^gatsby-/, ``))]: context }\n dispatch({\n type: `CREATE_RESOLVER_CONTEXT`,\n plugin,\n traceId,\n payload,\n })\n }\n },\n}\n\nconst withDeprecationWarning = (\n actionName: RestrictionActionNames,\n action: SomeActionCreator,\n api: API,\n allowedIn: Array<API>\n): SomeActionCreator => (\n ...args: Array<any>\n): ReturnType<ActionCreator<any>> => {\n report.warn(\n `Calling \\`${actionName}\\` in the \\`${api}\\` API is deprecated. ` +\n `Please use: ${allowedIn.map(a => `\\`${a}\\``).join(`, `)}.`\n )\n return action(...args)\n}\n\nconst withErrorMessage = (\n actionName: RestrictionActionNames,\n api: API,\n allowedIn: Array<API>\n) => () =>\n // return a thunk that does not dispatch anything\n (): void => {\n report.error(\n `\\`${actionName}\\` is not available in the \\`${api}\\` API. ` +\n `Please use: ${allowedIn.map(a => `\\`${a}\\``).join(`, `)}.`\n )\n }\n\nconst nodeAPIs = Object.keys(require(`../../utils/api-node-docs`))\n\nconst ALLOWED_IN = `ALLOWED_IN`\nconst DEPRECATED_IN = `DEPRECATED_IN`\n\ntype API = string\n\ntype Restrictions = Record<\n RestrictionActionNames,\n Partial<{\n ALLOWED_IN: Array<API>\n DEPRECATED_IN: Array<API>\n }>\n>\n\ntype AvailableActionsByAPI = Record<\n API,\n { [K in RestrictionActionNames]: SomeActionCreator }\n>\n\nconst set = (\n availableActionsByAPI: {},\n api: API,\n actionName: RestrictionActionNames,\n action: SomeActionCreator\n): void => {\n availableActionsByAPI[api] = availableActionsByAPI[api] || {}\n availableActionsByAPI[api][actionName] = action\n}\n\nconst mapAvailableActionsToAPIs = (\n restrictions: Restrictions\n): AvailableActionsByAPI => {\n const availableActionsByAPI: AvailableActionsByAPI = {}\n\n const actionNames = Object.keys(restrictions) as Array<\n keyof typeof restrictions\n >\n actionNames.forEach(actionName => {\n const action = actions[actionName]\n\n const allowedIn: Array<API> = restrictions[actionName][ALLOWED_IN] || []\n allowedIn.forEach(api =>\n set(availableActionsByAPI, api, actionName, action)\n )\n\n const deprecatedIn: Array<API> =\n restrictions[actionName][DEPRECATED_IN] || []\n deprecatedIn.forEach(api =>\n set(\n availableActionsByAPI,\n api,\n actionName,\n withDeprecationWarning(actionName, action, api, allowedIn)\n )\n )\n\n const forbiddenIn = nodeAPIs.filter(\n api => ![...allowedIn, ...deprecatedIn].includes(api)\n )\n forbiddenIn.forEach(api =>\n set(\n availableActionsByAPI,\n api,\n actionName,\n withErrorMessage(actionName, api, allowedIn)\n )\n )\n })\n\n return availableActionsByAPI\n}\n\nexport const availableActionsByAPI = mapAvailableActionsToAPIs({\n createFieldExtension: {\n [ALLOWED_IN]: [`sourceNodes`, `createSchemaCustomization`],\n },\n createTypes: {\n [ALLOWED_IN]: [`sourceNodes`, `createSchemaCustomization`],\n [DEPRECATED_IN]: [`onPreInit`, `onPreBootstrap`],\n },\n createResolverContext: {\n [ALLOWED_IN]: [`createSchemaCustomization`],\n },\n addThirdPartySchema: {\n [ALLOWED_IN]: [`sourceNodes`, `createSchemaCustomization`],\n [DEPRECATED_IN]: [`onPreInit`, `onPreBootstrap`],\n },\n printTypeDefinitions: {\n [ALLOWED_IN]: [`createSchemaCustomization`],\n },\n})\n"],"file":"restricted.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/redux/actions/restricted.ts"],"names":["actions","addThirdPartySchema","schema","plugin","traceId","type","payload","createTypes","types","Array","isArray","map","parseTypeDef","createFieldExtension","extension","dispatch","getState","name","fieldExtensions","schemaCustomization","report","error","reservedExtensionNames","includes","printTypeDefinitions","path","include","exclude","withFieldTypes","createResolverContext","context","replace","withDeprecationWarning","actionName","action","api","allowedIn","args","warn","a","join","withErrorMessage","nodeAPIs","Object","keys","require","ALLOWED_IN","DEPRECATED_IN","set","availableActionsByAPI","mapAvailableActionsToAPIs","restrictions","actionNames","forEach","deprecatedIn","forbiddenIn","filter"],"mappings":";;;;;;;AAAA;;AAIA;;AACA;;AACA;;AA4BO,MAAMA,OAAO,GAAG;AACrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,mBAAmB,EAAE,CACnB;AAAEC,IAAAA;AAAF,GADmB,EAEnBC,MAFmB,EAGnBC,OAHmB,KAIM;AACzB,WAAO;AACLC,MAAAA,IAAI,EAAG,wBADF;AAELF,MAAAA,MAFK;AAGLC,MAAAA,OAHK;AAILE,MAAAA,OAAO,EAAEJ;AAJJ,KAAP;AAMD,GAzBoB;;AA2BrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEK,EAAAA,WAAW,EAAE,CACXC,KADW,EAMXL,MANW,EAOXC,OAPW,KAQM;AACjB,WAAO;AACLC,MAAAA,IAAI,EAAG,cADF;AAELF,MAAAA,MAFK;AAGLC,MAAAA,OAHK;AAILE,MAAAA,OAAO,EAAEG,KAAK,CAACC,OAAN,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","sourcesContent":["import { camelCase } from \"lodash\"\nimport { GraphQLSchema, GraphQLOutputType } from \"graphql\"\nimport { ActionCreator } from \"redux\"\nimport { ThunkAction } from \"redux-thunk\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport { parseTypeDef } from \"../../schema/types/type-defs\"\nimport {\n GraphQLFieldExtensionDefinition,\n reservedExtensionNames,\n} from \"../../schema/extensions\"\nimport { GatsbyGraphQLType } from \"../../schema/types/type-builders\"\nimport {\n IGatsbyPlugin,\n ActionsUnion,\n IAddThirdPartySchema,\n ICreateTypes,\n IGatsbyState,\n ICreateFieldExtension,\n IPrintTypeDefinitions,\n ICreateResolverContext,\n IGatsbyPluginContext,\n} from \"../types\"\n\ntype RestrictionActionNames =\n | \"createFieldExtension\"\n | \"createTypes\"\n | \"createResolverContext\"\n | \"addThirdPartySchema\"\n | \"printTypeDefinitions\"\n\ntype SomeActionCreator =\n | ActionCreator<ActionsUnion>\n | ActionCreator<ThunkAction<any, IGatsbyState, any, ActionsUnion>>\n\nexport const actions = {\n /**\n * Add a third-party schema to be merged into main schema. Schema has to be a\n * graphql-js GraphQLSchema object.\n *\n * This schema is going to be merged as-is. This can easily break the main\n * Gatsby schema, so it's user's responsibility to make sure it doesn't happen\n * (by e.g. namespacing the schema).\n *\n * @availableIn [createSchemaCustomization, sourceNodes]\n *\n * @param {Object} $0\n * @param {GraphQLSchema} $0.schema GraphQL schema to add\n */\n addThirdPartySchema: (\n { schema }: { schema: GraphQLSchema },\n plugin: IGatsbyPlugin,\n traceId?: string\n ): IAddThirdPartySchema => {\n return {\n type: `ADD_THIRD_PARTY_SCHEMA`,\n plugin,\n traceId,\n payload: schema,\n }\n },\n\n /**\n * Add type definitions to the GraphQL schema.\n *\n * @availableIn [createSchemaCustomization, sourceNodes]\n *\n * @param {string | GraphQLOutputType | GatsbyGraphQLType | string[] | GraphQLOutputType[] | GatsbyGraphQLType[]} types Type definitions\n *\n * Type definitions can be provided either as\n * [`graphql-js` types](https://graphql.org/graphql-js/), in\n * [GraphQL schema definition language (SDL)](https://graphql.org/learn/)\n * or using Gatsby Type Builders available on the `schema` API argument.\n *\n * Things to note:\n * * type definitions targeting node types, i.e. `MarkdownRemark` and others\n * added in `sourceNodes` or `onCreateNode` APIs, need to implement the\n * `Node` interface. Interface fields will be added automatically, but it\n * is mandatory to label those types with `implements Node`.\n * * by default, explicit type definitions from `createTypes` will be merged\n * with inferred field types, and default field resolvers for `Date` (which\n * adds formatting options) and `File` (which resolves the field value as\n * a `relativePath` foreign-key field) are added. This behavior can be\n * customised with `@infer`, `@dontInfer` directives or extensions. Fields\n * may be assigned resolver (and other option like args) with additional\n * directives. Currently `@dateformat`, `@link`, `@fileByRelativePath` and\n * `@proxy` are available.\n *\n *\n * Schema customization controls:\n * * `@infer` - run inference on the type and add fields that don't exist on the\n * defined type to it.\n * * `@dontInfer` - don't run any inference on the type\n *\n * Extensions to add resolver options:\n * * `@dateformat` - add date formatting arguments. Accepts `formatString` and\n * `locale` options that sets the defaults for this field\n * * `@link` - connect to a different Node. Arguments `by` and `from`, which\n * define which field to compare to on a remote node and which field to use on\n * the source node\n * * `@fileByRelativePath` - connect to a File node. Same arguments. The\n * difference from link is that this normalizes the relative path to be\n * relative from the path where source node is found.\n * * `@proxy` - in case the underlying node data contains field names with\n * characters that are invalid in GraphQL, `proxy` allows to explicitly\n * proxy those properties to fields with valid field names. Takes a `from` arg.\n *\n *\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * const { createTypes } = actions\n * const typeDefs = `\n * \"\"\"\n * Markdown Node\n * \"\"\"\n * type MarkdownRemark implements Node @infer {\n * frontmatter: Frontmatter!\n * }\n *\n * \"\"\"\n * Markdown Frontmatter\n * \"\"\"\n * type Frontmatter @infer {\n * title: String!\n * author: AuthorJson! @link\n * date: Date! @dateformat\n * published: Boolean!\n * tags: [String!]!\n * }\n *\n * \"\"\"\n * Author information\n * \"\"\"\n * # Does not include automatically inferred fields\n * type AuthorJson implements Node @dontInfer {\n * name: String!\n * birthday: Date! @dateformat(locale: \"ru\")\n * }\n * `\n * createTypes(typeDefs)\n * }\n *\n * // using Gatsby Type Builder API\n * exports.createSchemaCustomization = ({ actions, schema }) => {\n * const { createTypes } = actions\n * const typeDefs = [\n * schema.buildObjectType({\n * name: 'MarkdownRemark',\n * fields: {\n * frontmatter: 'Frontmatter!'\n * },\n * interfaces: ['Node'],\n * extensions: {\n * infer: true,\n * },\n * }),\n * schema.buildObjectType({\n * name: 'Frontmatter',\n * fields: {\n * title: {\n * type: 'String!',\n * resolve(parent) {\n * return parent.title || '(Untitled)'\n * }\n * },\n * author: {\n * type: 'AuthorJson'\n * extensions: {\n * link: {},\n * },\n * }\n * date: {\n * type: 'Date!'\n * extensions: {\n * dateformat: {},\n * },\n * },\n * published: 'Boolean!',\n * tags: '[String!]!',\n * }\n * }),\n * schema.buildObjectType({\n * name: 'AuthorJson',\n * fields: {\n * name: 'String!'\n * birthday: {\n * type: 'Date!'\n * extensions: {\n * dateformat: {\n * locale: 'ru',\n * },\n * },\n * },\n * },\n * interfaces: ['Node'],\n * extensions: {\n * infer: false,\n * },\n * }),\n * ]\n * createTypes(typeDefs)\n * }\n */\n createTypes: (\n types:\n | string\n | GraphQLOutputType\n | GatsbyGraphQLType<any, any>\n | Array<string | GraphQLOutputType | GatsbyGraphQLType<any, any>>,\n plugin: IGatsbyPlugin,\n traceId?: string\n ): ICreateTypes => {\n return {\n type: `CREATE_TYPES`,\n plugin,\n traceId,\n payload: Array.isArray(types)\n ? types.map(parseTypeDef)\n : parseTypeDef(types),\n }\n },\n\n /**\n * Add a field extension to the GraphQL schema.\n *\n * Extensions allow defining custom behavior which can be added to fields\n * via directive (in SDL) or on the `extensions` prop (with Type Builders).\n *\n * The extension definition takes a `name`, an `extend` function, and optional\n * extension `args` for options. The `extend` function has to return a (partial)\n * field config, and receives the extension options and the previous field config\n * as arguments.\n *\n * @availableIn [createSchemaCustomization, sourceNodes]\n *\n * @param {GraphQLFieldExtensionDefinition} extension The field extension definition\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * const { createFieldExtension } = actions\n * createFieldExtension({\n * name: 'motivate',\n * args: {\n * caffeine: 'Int'\n * },\n * extend(options, prevFieldConfig) {\n * return {\n * type: 'String',\n * args: {\n * sunshine: {\n * type: 'Int',\n * defaultValue: 0,\n * },\n * },\n * resolve(source, args, context, info) {\n * const motivation = (options.caffeine || 0) - args.sunshine\n * if (motivation > 5) return 'Work! Work! Work!'\n * return 'Maybe tomorrow.'\n * },\n * }\n * },\n * })\n * }\n */\n createFieldExtension: (\n extension: GraphQLFieldExtensionDefinition,\n plugin: IGatsbyPlugin,\n traceId?: string\n ): ThunkAction<void, IGatsbyState, {}, ICreateFieldExtension> => (\n dispatch,\n getState\n ): void => {\n const { name } = extension || {}\n const { fieldExtensions } = getState().schemaCustomization\n\n if (!name) {\n report.error(\n `The provided field extension must have a \\`name\\` property.`\n )\n } else if (reservedExtensionNames.includes(name)) {\n report.error(\n `The field extension name \\`${name}\\` is reserved for internal use.`\n )\n } else if (fieldExtensions[name]) {\n report.error(\n `A field extension with the name \\`${name}\\` has already been registered.`\n )\n } else {\n dispatch({\n type: `CREATE_FIELD_EXTENSION`,\n plugin,\n traceId,\n payload: { name, extension },\n })\n }\n },\n\n /**\n * Write GraphQL schema to file\n *\n * Writes out inferred and explicitly specified type definitions. This is not\n * the full GraphQL schema, but only the types necessary to recreate all type\n * definitions, i.e. it does not include directives, built-ins, and derived\n * types for filtering, sorting, pagination etc. Optionally, you can define a\n * list of types to include/exclude. This is recommended to avoid including\n * definitions for plugin-created types.\n *\n * The first object parameter is required, however all the fields in the object are optional.\n *\n * @availableIn [createSchemaCustomization]\n *\n * @param {object} $0\n * @param {string} [$0.path] The path to the output file, defaults to `schema.gql`\n * @param {object} [$0.include] Configure types to include\n * @param {string[]} [$0.include.types] Only include these types\n * @param {string[]} [$0.include.plugins] Only include types owned by these plugins\n * @param {object} [$0.exclude] Configure types to exclude\n * @param {string[]} [$0.exclude.types] Do not include these types\n * @param {string[]} [$0.exclude.plugins] Do not include types owned by these plugins\n * @param {boolean} [$0.withFieldTypes] Include field types, defaults to `true`\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * // This code writes a GraphQL schema to a file named `schema.gql`.\n * actions.printTypeDefinitions({})\n * }\n * @example\n * exports.createSchemaCustomization = ({ actions }) => {\n * // This code writes a GraphQL schema to a file named `schema.gql`, but this time it does not include field types.\n * actions.printTypeDefinitions({ withFieldTypes: false })\n * }\n */\n printTypeDefinitions: (\n {\n path = `schema.gql`,\n include,\n exclude,\n withFieldTypes = true,\n }: {\n path?: string\n include?: { types?: Array<string>; plugins?: Array<string> }\n exclude?: { types?: Array<string>; plugins?: Array<string> }\n withFieldTypes?: boolean\n },\n plugin: IGatsbyPlugin,\n traceId?: string\n ): IPrintTypeDefinitions => {\n return {\n type: `PRINT_SCHEMA_REQUESTED`,\n plugin,\n traceId,\n payload: {\n path,\n include,\n exclude,\n withFieldTypes,\n },\n }\n },\n\n /**\n * Make functionality available on field resolver `context`\n *\n * @availableIn [createSchemaCustomization]\n *\n * @param {object} context Object to make available on `context`.\n * When called from a plugin, the context value will be namespaced under\n * the camel-cased plugin name without the \"gatsby-\" prefix\n * @example\n * const getHtml = md => remark().use(html).process(md)\n * exports.createSchemaCustomization = ({ actions }) => {\n * actions.createResolverContext({ getHtml })\n * }\n * // The context value can then be accessed in any field resolver like this:\n * exports.createSchemaCustomization = ({ actions, schema }) => {\n * actions.createTypes(schema.buildObjectType({\n * name: 'Test',\n * interfaces: ['Node'],\n * fields: {\n * md: {\n * type: 'String!',\n * async resolve(source, args, context, info) {\n * const processed = await context.transformerRemark.getHtml(source.internal.contents)\n * return processed.contents\n * }\n * }\n * }\n * }))\n * }\n */\n createResolverContext: (\n context: IGatsbyPluginContext,\n plugin: IGatsbyPlugin,\n traceId?: string\n ): ThunkAction<void, IGatsbyState, {}, ICreateResolverContext> => (\n dispatch\n ): void => {\n if (!context || typeof context !== `object`) {\n report.error(\n `Expected context value passed to \\`createResolverContext\\` to be an object. Received \"${context}\".`\n )\n } else {\n const { name } = plugin || {}\n const payload =\n !name || name === `default-site-plugin`\n ? context\n : { [camelCase(name.replace(/^gatsby-/, ``))]: context }\n dispatch({\n type: `CREATE_RESOLVER_CONTEXT`,\n plugin,\n traceId,\n payload,\n })\n }\n },\n}\n\nconst withDeprecationWarning = (\n actionName: RestrictionActionNames,\n action: SomeActionCreator,\n api: API,\n allowedIn: Array<API>\n): SomeActionCreator => (\n ...args: Array<any>\n): ReturnType<ActionCreator<any>> => {\n report.warn(\n `Calling \\`${actionName}\\` in the \\`${api}\\` API is deprecated. ` +\n `Please use: ${allowedIn.map(a => `\\`${a}\\``).join(`, `)}.`\n )\n return action(...args)\n}\n\nconst withErrorMessage = (\n actionName: RestrictionActionNames,\n api: API,\n allowedIn: Array<API>\n) => () =>\n // return a thunk that does not dispatch anything\n (): void => {\n report.error(\n `\\`${actionName}\\` is not available in the \\`${api}\\` API. ` +\n `Please use: ${allowedIn.map(a => `\\`${a}\\``).join(`, `)}.`\n )\n }\n\nconst nodeAPIs = Object.keys(require(`../../utils/api-node-docs`))\n\nconst ALLOWED_IN = `ALLOWED_IN`\nconst DEPRECATED_IN = `DEPRECATED_IN`\n\ntype API = string\n\ntype Restrictions = Record<\n RestrictionActionNames,\n Partial<{\n ALLOWED_IN: Array<API>\n DEPRECATED_IN: Array<API>\n }>\n>\n\ntype AvailableActionsByAPI = Record<\n API,\n { [K in RestrictionActionNames]: SomeActionCreator }\n>\n\nconst set = (\n availableActionsByAPI: {},\n api: API,\n actionName: RestrictionActionNames,\n action: SomeActionCreator\n): void => {\n availableActionsByAPI[api] = availableActionsByAPI[api] || {}\n availableActionsByAPI[api][actionName] = action\n}\n\nconst mapAvailableActionsToAPIs = (\n restrictions: Restrictions\n): AvailableActionsByAPI => {\n const availableActionsByAPI: AvailableActionsByAPI = {}\n\n const actionNames = Object.keys(restrictions) as Array<\n keyof typeof restrictions\n >\n actionNames.forEach(actionName => {\n const action = actions[actionName]\n\n const allowedIn: Array<API> = restrictions[actionName][ALLOWED_IN] || []\n allowedIn.forEach(api =>\n set(availableActionsByAPI, api, actionName, action)\n )\n\n const deprecatedIn: Array<API> =\n restrictions[actionName][DEPRECATED_IN] || []\n deprecatedIn.forEach(api =>\n set(\n availableActionsByAPI,\n api,\n actionName,\n withDeprecationWarning(actionName, action, api, allowedIn)\n )\n )\n\n const forbiddenIn = nodeAPIs.filter(\n api => ![...allowedIn, ...deprecatedIn].includes(api)\n )\n forbiddenIn.forEach(api =>\n set(\n availableActionsByAPI,\n api,\n actionName,\n withErrorMessage(actionName, api, allowedIn)\n )\n )\n })\n\n return availableActionsByAPI\n}\n\nexport const availableActionsByAPI = mapAvailableActionsToAPIs({\n createFieldExtension: {\n [ALLOWED_IN]: [`sourceNodes`, `createSchemaCustomization`],\n },\n createTypes: {\n [ALLOWED_IN]: [`sourceNodes`, `createSchemaCustomization`],\n [DEPRECATED_IN]: [`onPreInit`, `onPreBootstrap`],\n },\n createResolverContext: {\n [ALLOWED_IN]: [`createSchemaCustomization`],\n },\n addThirdPartySchema: {\n [ALLOWED_IN]: [`sourceNodes`, `createSchemaCustomization`],\n [DEPRECATED_IN]: [`onPreInit`, `onPreBootstrap`],\n },\n printTypeDefinitions: {\n [ALLOWED_IN]: [`createSchemaCustomization`],\n },\n})\n"],"file":"restricted.js"}
|
|
@@ -15,9 +15,13 @@ const _ = require(`lodash`);
|
|
|
15
15
|
const chalk = require(`chalk`);
|
|
16
16
|
|
|
17
17
|
const {
|
|
18
|
-
bindActionCreators
|
|
18
|
+
bindActionCreators: origBindActionCreators
|
|
19
19
|
} = require(`redux`);
|
|
20
20
|
|
|
21
|
+
const memoize = require(`memoizee`);
|
|
22
|
+
|
|
23
|
+
const bindActionCreators = memoize(origBindActionCreators);
|
|
24
|
+
|
|
21
25
|
const tracer = require(`opentracing`).globalTracer();
|
|
22
26
|
|
|
23
27
|
const reporter = require(`gatsby-cli/lib/reporter`);
|
|
@@ -312,6 +316,8 @@ const getUninitializedCache = plugin => {
|
|
|
312
316
|
};
|
|
313
317
|
|
|
314
318
|
const pluginNodeCache = new Map();
|
|
319
|
+
const availableActionsCache = new Map();
|
|
320
|
+
let publicPath;
|
|
315
321
|
|
|
316
322
|
const runAPI = async (plugin, api, args, activity) => {
|
|
317
323
|
let gatsbyNode = pluginNodeCache.get(plugin.name);
|
|
@@ -335,9 +341,17 @@ const runAPI = async (plugin, api, args, activity) => {
|
|
|
335
341
|
restrictedActionsAvailableInAPI
|
|
336
342
|
} = require(`../redux/actions`);
|
|
337
343
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
344
|
+
let availableActions;
|
|
345
|
+
|
|
346
|
+
if (availableActionsCache.has(api)) {
|
|
347
|
+
availableActions = availableActionsCache.get(api);
|
|
348
|
+
} else {
|
|
349
|
+
availableActions = { ...publicActions,
|
|
350
|
+
...(restrictedActionsAvailableInAPI[api] || {})
|
|
351
|
+
};
|
|
352
|
+
availableActionsCache.set(api, availableActions);
|
|
353
|
+
}
|
|
354
|
+
|
|
341
355
|
let boundActionCreators = bindActionCreators(availableActions, store.dispatch);
|
|
342
356
|
|
|
343
357
|
if (args.deferNodeMutation) {
|
|
@@ -353,9 +367,12 @@ const runAPI = async (plugin, api, args, activity) => {
|
|
|
353
367
|
program
|
|
354
368
|
} = store.getState();
|
|
355
369
|
const pathPrefix = program.prefixPaths && config.pathPrefix || ``;
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
370
|
+
|
|
371
|
+
if (typeof publicPath === `undefined`) {
|
|
372
|
+
publicPath = getPublicPath({ ...config,
|
|
373
|
+
...program
|
|
374
|
+
}, ``);
|
|
375
|
+
}
|
|
359
376
|
|
|
360
377
|
const namespacedCreateNodeId = id => (0, _createNodeId.createNodeId)(id, plugin.name);
|
|
361
378
|
|