gatsby 3.14.0-drupal-next.74 → 3.14.0-drupal-next.75

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.
@@ -45,7 +45,10 @@ const componentsReducer = (state = new Map(), action) => {
45
45
  {
46
46
  action.payload.componentPath = (0, _normalizePath.default)(action.payload.componentPath);
47
47
  const component = state.get(action.payload.componentPath);
48
- console.log(`QUERY_EXTRACTED`, component, action);
48
+
49
+ if (!component) {
50
+ console.log(`QUERY_EXTRACTED`, component, action);
51
+ }
49
52
 
50
53
  if (component) {
51
54
  component.query = action.payload.query;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/redux/reducers/components.ts"],"names":["programStatus","componentsReducer","state","Map","action","type","payload","componentPath","component","get","componentChunkName","query","pages","Set","isInBootstrap","add","path","set","console","log","delete"],"mappings":";;;;;;;AAAA;;AAGA,IAAIA,aAAa,GAAI,eAArB,C,CAEA;AACA;;AACO,MAAMC,iBAAiB,GAAG,CAC/BC,KAAiC,GAAG,IAAIC,GAAJ,EADL,EAE/BC,MAF+B,KAGA;AAC/B,UAAQA,MAAM,CAACC,IAAf;AACE,SAAM,cAAN;AACE,aAAO,IAAIF,GAAJ,EAAP;;AACF,SAAM,oBAAN;AACEH,MAAAA,aAAa,GAAGI,MAAM,CAACE,OAAvB;AACA,aAAOJ,KAAP;;AACF,SAAM,aAAN;AAAoB;AAClBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAA/B,CADkB,CAElB;;AACA,YAAIA,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAhB;;AACA,YAAI,CAACC,SAAL,EAAgB;AACdA,UAAAA,SAAS,GAAG;AACVD,YAAAA,aAAa,EAAEH,MAAM,CAACE,OAAP,CAAeC,aADpB;AAEVG,YAAAA,kBAAkB,EAAEN,MAAM,CAACE,OAAP,CAAeI,kBAFzB;AAGVC,YAAAA,KAAK,EAAG,EAHE;AAIVC,YAAAA,KAAK,EAAE,IAAIC,GAAJ,EAJG;AAKVC,YAAAA,aAAa,EAAE;AALL,WAAZ;AAOD;;AACDN,QAAAA,SAAS,CAACI,KAAV,CAAgBG,GAAhB,CAAoBX,MAAM,CAACE,OAAP,CAAeU,IAAnC;AACAR,QAAAA,SAAS,CAACM,aAAV,GAA0Bd,aAAa,KAAM,eAA7C;AACAE,QAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACA,eAAON,KAAP;AACD;;AACD,SAAM,iBAAN;AAAwB;AACtBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACA,cAAMC,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAlB;AAEAW,QAAAA,OAAO,CAACC,GAAR,CAAa,iBAAb,EAA+BX,SAA/B,EAA0CJ,MAA1C;;AAEA,YAAII,SAAJ,EAAe;AACbA,UAAAA,SAAS,CAACG,KAAV,GAAkBP,MAAM,CAACE,OAAP,CAAeK,KAAjC;AACAT,UAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACD;;AACD,eAAON,KAAP;AACD;;AACD,SAAM,mCAAN;AAA0C;AACxCE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACAL,QAAAA,KAAK,CAACkB,MAAN,CAAahB,MAAM,CAACE,OAAP,CAAeC,aAA5B;AACA,eAAOL,KAAP;AACD;;AACD,SAAM,aAAN;AAAoB;AAClB,cAAMM,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAU,4BAAUL,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAAV,CAAlB;AACAA,QAAAA,SAAS,CAACI,KAAV,CAAgBQ,MAAhB,CAAuBhB,MAAM,CAACE,OAAP,CAAeU,IAAtC;AACA,eAAOd,KAAP;AACD;AA7CH;;AAgDA,SAAOA,KAAP;AACD,CArDM","sourcesContent":["import normalize from \"./normalize-path\"\nimport { IGatsbyState, ActionsUnion } from \"../types\"\n\nlet programStatus = `BOOTSTRAPPING`\n\n// TODO: replace usages of this reducer with queries.trackedComponents\n// It is here merely for compatibility.\nexport const componentsReducer = (\n state: IGatsbyState[\"components\"] = new Map(),\n action: ActionsUnion\n): IGatsbyState[\"components\"] => {\n switch (action.type) {\n case `DELETE_CACHE`:\n return new Map()\n case `SET_PROGRAM_STATUS`:\n programStatus = action.payload\n return state\n case `CREATE_PAGE`: {\n action.payload.componentPath = normalize(action.payload.component)\n // Create XState service.\n let component = state.get(action.payload.componentPath)\n if (!component) {\n component = {\n componentPath: action.payload.componentPath,\n componentChunkName: action.payload.componentChunkName,\n query: ``,\n pages: new Set(),\n isInBootstrap: true,\n }\n }\n component.pages.add(action.payload.path)\n component.isInBootstrap = programStatus === `BOOTSTRAPPING`\n state.set(action.payload.componentPath, component)\n return state\n }\n case `QUERY_EXTRACTED`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n const component = state.get(action.payload.componentPath)!\n\n console.log(`QUERY_EXTRACTED`, component, action)\n\n if (component) {\n component.query = action.payload.query\n state.set(action.payload.componentPath, component)\n }\n return state\n }\n case `REMOVE_STATIC_QUERIES_BY_TEMPLATE`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n state.delete(action.payload.componentPath)\n return state\n }\n case `DELETE_PAGE`: {\n const component = state.get(normalize(action.payload.component))!\n component.pages.delete(action.payload.path)\n return state\n }\n }\n\n return state\n}\n"],"file":"components.js"}
1
+ {"version":3,"sources":["../../../src/redux/reducers/components.ts"],"names":["programStatus","componentsReducer","state","Map","action","type","payload","componentPath","component","get","componentChunkName","query","pages","Set","isInBootstrap","add","path","set","console","log","delete"],"mappings":";;;;;;;AAAA;;AAGA,IAAIA,aAAa,GAAI,eAArB,C,CAEA;AACA;;AACO,MAAMC,iBAAiB,GAAG,CAC/BC,KAAiC,GAAG,IAAIC,GAAJ,EADL,EAE/BC,MAF+B,KAGA;AAC/B,UAAQA,MAAM,CAACC,IAAf;AACE,SAAM,cAAN;AACE,aAAO,IAAIF,GAAJ,EAAP;;AACF,SAAM,oBAAN;AACEH,MAAAA,aAAa,GAAGI,MAAM,CAACE,OAAvB;AACA,aAAOJ,KAAP;;AACF,SAAM,aAAN;AAAoB;AAClBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAA/B,CADkB,CAElB;;AACA,YAAIA,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAhB;;AACA,YAAI,CAACC,SAAL,EAAgB;AACdA,UAAAA,SAAS,GAAG;AACVD,YAAAA,aAAa,EAAEH,MAAM,CAACE,OAAP,CAAeC,aADpB;AAEVG,YAAAA,kBAAkB,EAAEN,MAAM,CAACE,OAAP,CAAeI,kBAFzB;AAGVC,YAAAA,KAAK,EAAG,EAHE;AAIVC,YAAAA,KAAK,EAAE,IAAIC,GAAJ,EAJG;AAKVC,YAAAA,aAAa,EAAE;AALL,WAAZ;AAOD;;AACDN,QAAAA,SAAS,CAACI,KAAV,CAAgBG,GAAhB,CAAoBX,MAAM,CAACE,OAAP,CAAeU,IAAnC;AACAR,QAAAA,SAAS,CAACM,aAAV,GAA0Bd,aAAa,KAAM,eAA7C;AACAE,QAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACA,eAAON,KAAP;AACD;;AACD,SAAM,iBAAN;AAAwB;AACtBE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACA,cAAMC,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAUL,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAAlB;;AAEA,YAAI,CAACC,SAAL,EAAgB;AACdU,UAAAA,OAAO,CAACC,GAAR,CAAa,iBAAb,EAA+BX,SAA/B,EAA0CJ,MAA1C;AACD;;AAED,YAAII,SAAJ,EAAe;AACbA,UAAAA,SAAS,CAACG,KAAV,GAAkBP,MAAM,CAACE,OAAP,CAAeK,KAAjC;AACAT,UAAAA,KAAK,CAACe,GAAN,CAAUb,MAAM,CAACE,OAAP,CAAeC,aAAzB,EAAwCC,SAAxC;AACD;;AACD,eAAON,KAAP;AACD;;AACD,SAAM,mCAAN;AAA0C;AACxCE,QAAAA,MAAM,CAACE,OAAP,CAAeC,aAAf,GAA+B,4BAAUH,MAAM,CAACE,OAAP,CAAeC,aAAzB,CAA/B;AACAL,QAAAA,KAAK,CAACkB,MAAN,CAAahB,MAAM,CAACE,OAAP,CAAeC,aAA5B;AACA,eAAOL,KAAP;AACD;;AACD,SAAM,aAAN;AAAoB;AAClB,cAAMM,SAAS,GAAGN,KAAK,CAACO,GAAN,CAAU,4BAAUL,MAAM,CAACE,OAAP,CAAeE,SAAzB,CAAV,CAAlB;AACAA,QAAAA,SAAS,CAACI,KAAV,CAAgBQ,MAAhB,CAAuBhB,MAAM,CAACE,OAAP,CAAeU,IAAtC;AACA,eAAOd,KAAP;AACD;AA/CH;;AAkDA,SAAOA,KAAP;AACD,CAvDM","sourcesContent":["import normalize from \"./normalize-path\"\nimport { IGatsbyState, ActionsUnion } from \"../types\"\n\nlet programStatus = `BOOTSTRAPPING`\n\n// TODO: replace usages of this reducer with queries.trackedComponents\n// It is here merely for compatibility.\nexport const componentsReducer = (\n state: IGatsbyState[\"components\"] = new Map(),\n action: ActionsUnion\n): IGatsbyState[\"components\"] => {\n switch (action.type) {\n case `DELETE_CACHE`:\n return new Map()\n case `SET_PROGRAM_STATUS`:\n programStatus = action.payload\n return state\n case `CREATE_PAGE`: {\n action.payload.componentPath = normalize(action.payload.component)\n // Create XState service.\n let component = state.get(action.payload.componentPath)\n if (!component) {\n component = {\n componentPath: action.payload.componentPath,\n componentChunkName: action.payload.componentChunkName,\n query: ``,\n pages: new Set(),\n isInBootstrap: true,\n }\n }\n component.pages.add(action.payload.path)\n component.isInBootstrap = programStatus === `BOOTSTRAPPING`\n state.set(action.payload.componentPath, component)\n return state\n }\n case `QUERY_EXTRACTED`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n const component = state.get(action.payload.componentPath)!\n\n if (!component) {\n console.log(`QUERY_EXTRACTED`, component, action)\n }\n\n if (component) {\n component.query = action.payload.query\n state.set(action.payload.componentPath, component)\n }\n return state\n }\n case `REMOVE_STATIC_QUERIES_BY_TEMPLATE`: {\n action.payload.componentPath = normalize(action.payload.componentPath)\n state.delete(action.payload.componentPath)\n return state\n }\n case `DELETE_PAGE`: {\n const component = state.get(normalize(action.payload.component))!\n component.pages.delete(action.payload.path)\n return state\n }\n }\n\n return state\n}\n"],"file":"components.js"}
@@ -26,6 +26,10 @@ var _definitions = require("./definitions");
26
26
 
27
27
  exports.definitions = _definitions.definitionsReducer;
28
28
 
29
+ var _tick = require("./tick");
30
+
31
+ exports.tick = _tick.tickReducer;
32
+
29
33
  var _staticQueryComponents = require("./static-query-components");
30
34
 
31
35
  exports.staticQueryComponents = _staticQueryComponents.staticQueryComponentsReducer;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/redux/reducers/index.ts"],"names":[],"mappings":";;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA","sourcesContent":["import { nodesReducer } from \"./nodes\"\nimport { reducer as logReducer } from \"gatsby-cli/lib/reporter/redux/reducer\"\nimport { pagesReducer } from \"./pages\"\nimport { redirectsReducer } from \"./redirects\"\nimport { schemaReducer } from \"./schema\"\nimport { definitionsReducer } from \"./definitions\"\nimport { staticQueryComponentsReducer } from \"./static-query-components\"\nimport { statusReducer } from \"./status\"\nimport { webpackReducer } from \"./webpack\"\nimport { webpackCompilationHashReducer } from \"./webpack-compilation-hash\"\nimport { configReducer } from \"./config\"\nimport { lastActionReducer } from \"./last-action\"\nimport { jobsV2Reducer } from \"./jobsv2\"\nimport { pageDataStatsReducer } from \"./page-data-stats\"\nimport { componentsReducer } from \"./components\"\nimport { babelrcReducer } from \"./babelrc\"\nimport { jobsReducer } from \"./jobs\"\nimport { nodesByTypeReducer } from \"./nodes-by-type\"\nimport { programReducer } from \"./program\"\nimport { resolvedNodesCacheReducer } from \"./resolved-nodes\"\nimport { nodesTouchedReducer } from \"./nodes-touched\"\nimport { flattenedPluginsReducer } from \"./flattened-plugins\"\nimport { pendingPageDataWritesReducer } from \"./pending-page-data-writes\"\nimport { schemaCustomizationReducer } from \"./schema-customization\"\nimport { inferenceMetadataReducer } from \"./inference-metadata\"\nimport { staticQueriesByTemplateReducer } from \"./static-queries-by-template\"\nimport { queriesReducer } from \"./queries\"\nimport { visitedPagesReducer } from \"./visited-page\"\nimport { htmlReducer } from \"./html\"\nimport { functionsReducer } from \"./functions\"\nimport { nodeManifestReducer } from \"./node-manifest\"\n\n/**\n * @property exports.nodesTouched Set<string>\n */\nexport {\n definitionsReducer as definitions,\n programReducer as program,\n nodesReducer as nodes,\n nodesByTypeReducer as nodesByType,\n resolvedNodesCacheReducer as resolvedNodesCache,\n nodesTouchedReducer as nodesTouched,\n lastActionReducer as lastAction,\n flattenedPluginsReducer as flattenedPlugins,\n configReducer as config,\n schemaReducer as schema,\n pagesReducer as pages,\n visitedPagesReducer as visitedPages,\n statusReducer as status,\n componentsReducer as components,\n staticQueryComponentsReducer as staticQueryComponents,\n jobsReducer as jobs,\n jobsV2Reducer as jobsV2,\n webpackReducer as webpack,\n webpackCompilationHashReducer as webpackCompilationHash,\n redirectsReducer as redirects,\n babelrcReducer as babelrc,\n schemaCustomizationReducer as schemaCustomization,\n logReducer as logs,\n inferenceMetadataReducer as inferenceMetadata,\n pageDataStatsReducer as pageDataStats,\n pendingPageDataWritesReducer as pendingPageDataWrites,\n staticQueriesByTemplateReducer as staticQueriesByTemplate,\n queriesReducer as queries,\n htmlReducer as html,\n functionsReducer as functions,\n nodeManifestReducer as nodeManifests,\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/redux/reducers/index.ts"],"names":[],"mappings":";;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA","sourcesContent":["import { nodesReducer } from \"./nodes\"\nimport { reducer as logReducer } from \"gatsby-cli/lib/reporter/redux/reducer\"\nimport { pagesReducer } from \"./pages\"\nimport { redirectsReducer } from \"./redirects\"\nimport { schemaReducer } from \"./schema\"\nimport { definitionsReducer } from \"./definitions\"\nimport { tickReducer } from \"./tick\"\nimport { staticQueryComponentsReducer } from \"./static-query-components\"\nimport { statusReducer } from \"./status\"\nimport { webpackReducer } from \"./webpack\"\nimport { webpackCompilationHashReducer } from \"./webpack-compilation-hash\"\nimport { configReducer } from \"./config\"\nimport { lastActionReducer } from \"./last-action\"\nimport { jobsV2Reducer } from \"./jobsv2\"\nimport { pageDataStatsReducer } from \"./page-data-stats\"\nimport { componentsReducer } from \"./components\"\nimport { babelrcReducer } from \"./babelrc\"\nimport { jobsReducer } from \"./jobs\"\nimport { nodesByTypeReducer } from \"./nodes-by-type\"\nimport { programReducer } from \"./program\"\nimport { resolvedNodesCacheReducer } from \"./resolved-nodes\"\nimport { nodesTouchedReducer } from \"./nodes-touched\"\nimport { flattenedPluginsReducer } from \"./flattened-plugins\"\nimport { pendingPageDataWritesReducer } from \"./pending-page-data-writes\"\nimport { schemaCustomizationReducer } from \"./schema-customization\"\nimport { inferenceMetadataReducer } from \"./inference-metadata\"\nimport { staticQueriesByTemplateReducer } from \"./static-queries-by-template\"\nimport { queriesReducer } from \"./queries\"\nimport { visitedPagesReducer } from \"./visited-page\"\nimport { htmlReducer } from \"./html\"\nimport { functionsReducer } from \"./functions\"\nimport { nodeManifestReducer } from \"./node-manifest\"\n\n/**\n * @property exports.nodesTouched Set<string>\n */\nexport {\n definitionsReducer as definitions,\n programReducer as program,\n nodesReducer as nodes,\n nodesByTypeReducer as nodesByType,\n resolvedNodesCacheReducer as resolvedNodesCache,\n nodesTouchedReducer as nodesTouched,\n lastActionReducer as lastAction,\n flattenedPluginsReducer as flattenedPlugins,\n configReducer as config,\n schemaReducer as schema,\n pagesReducer as pages,\n visitedPagesReducer as visitedPages,\n statusReducer as status,\n componentsReducer as components,\n staticQueryComponentsReducer as staticQueryComponents,\n jobsReducer as jobs,\n tickReducer as tick,\n jobsV2Reducer as jobsV2,\n webpackReducer as webpack,\n webpackCompilationHashReducer as webpackCompilationHash,\n redirectsReducer as redirects,\n babelrcReducer as babelrc,\n schemaCustomizationReducer as schemaCustomization,\n logReducer as logs,\n inferenceMetadataReducer as inferenceMetadata,\n pageDataStatsReducer as pageDataStats,\n pendingPageDataWritesReducer as pendingPageDataWrites,\n staticQueriesByTemplateReducer as staticQueriesByTemplate,\n queriesReducer as queries,\n htmlReducer as html,\n functionsReducer as functions,\n nodeManifestReducer as nodeManifests,\n}\n"],"file":"index.js"}
@@ -128,7 +128,10 @@ function queriesReducer(state = initialState(), action) {
128
128
  query
129
129
  } = action.payload;
130
130
  const component = registerComponent(state, componentPath);
131
- console.log(`reducers/queries`, component, action);
131
+
132
+ if (!component) {
133
+ console.log(`reducers/queries`, component, action);
134
+ }
132
135
 
133
136
  if (component) {
134
137
  if (hasFlag(component.errors, FLAG_ERROR_EXTRACTION)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/redux/reducers/queries.ts"],"names":["FLAG_DIRTY_NEW_PAGE","FLAG_DIRTY_TEXT","FLAG_DIRTY_DATA","FLAG_DIRTY_PAGE_CONTEXT","FLAG_ERROR_EXTRACTION","FLAG_RUNNING_INFLIGHT","initialState","byNode","Map","byConnection","queryNodes","trackedQueries","trackedComponents","deletedQueries","Set","dirtyQueriesListToEmitViaWebsocket","initialQueryState","dirty","running","initialComponentState","componentPath","query","pages","errors","queriesReducer","state","action","type","console","log","path","payload","get","contextModified","registerQuery","setFlag","trackDirtyQuery","registerComponent","add","delete","apiName","queryId","component","values","clearNodeDependencies","clearConnectionDependencies","clear","hasFlag","set","id","forEach","nodeId","connection","addNodeDependency","addConnectionDependency","node","queriesByNode","queriesByConnection","internal","assertCorrectWorkerState","mergeWorkerDataDependencies","allFlags","flag","nodeQueries","queryIds","queryNodeIds","process","env","GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND","push","workerStateChunk","queryState","queryStateChunk","keys","queries","connectionName","workerId","size","Error"],"mappings":"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","sourcesContent":["import {\n ActionsUnion,\n IComponentState,\n IGatsbyState,\n IQueryState,\n} from \"../types\"\n\ntype QueryId = string // page query path or static query id\ntype ComponentPath = string\ntype NodeId = string\ntype ConnectionName = string\n\nexport const FLAG_DIRTY_NEW_PAGE = 0b0001\nexport const FLAG_DIRTY_TEXT = 0b0010\nexport const FLAG_DIRTY_DATA = 0b0100\nexport const FLAG_DIRTY_PAGE_CONTEXT = 0b1000\n\nexport const FLAG_ERROR_EXTRACTION = 0b0001\n\nexport const FLAG_RUNNING_INFLIGHT = 0b0001\n\nconst initialState = (): IGatsbyState[\"queries\"] => {\n return {\n byNode: new Map<NodeId, Set<QueryId>>(),\n byConnection: new Map<ConnectionName, Set<QueryId>>(),\n queryNodes: new Map<QueryId, Set<NodeId>>(),\n trackedQueries: new Map<QueryId, IQueryState>(),\n trackedComponents: new Map<ComponentPath, IComponentState>(),\n deletedQueries: new Set<QueryId>(),\n dirtyQueriesListToEmitViaWebsocket: [],\n }\n}\n\nconst initialQueryState = (): IQueryState => {\n return {\n dirty: -1, // unknown, must be set right after init\n running: 0,\n }\n}\n\nconst initialComponentState = (): IComponentState => {\n return {\n componentPath: ``,\n query: ``,\n pages: new Set<QueryId>(),\n errors: 0,\n // TODO: staticQueries: new Set<QueryId>()\n }\n}\n\n/**\n * Tracks query dirtiness. Dirty queries are queries that:\n *\n * - depend on nodes or node collections (via `actions.createPageDependency`) that have changed.\n * - have been recently extracted (or their query text has changed)\n * - belong to newly created pages (or pages with modified context)\n *\n * Dirty queries must be re-ran.\n */\nexport function queriesReducer(\n state: IGatsbyState[\"queries\"] = initialState(),\n action: ActionsUnion\n): IGatsbyState[\"queries\"] {\n switch (action.type) {\n case `DELETE_CACHE`:\n return initialState()\n\n case `DELETE_QUERIES_CACHE`:\n console.log(`deleting query cache`)\n return initialState()\n\n case `CREATE_PAGE`: {\n const { path, componentPath } = action.payload\n let query = state.trackedQueries.get(path)\n if (!query || action.contextModified) {\n query = registerQuery(state, path)\n query.dirty = setFlag(\n query.dirty,\n action.contextModified ? FLAG_DIRTY_PAGE_CONTEXT : FLAG_DIRTY_NEW_PAGE\n )\n state = trackDirtyQuery(state, path)\n }\n registerComponent(state, componentPath).pages.add(path)\n state.deletedQueries.delete(path)\n return state\n }\n case `DELETE_PAGE`: {\n // Don't actually remove the page query from trackedQueries, just mark it as \"deleted\". Why?\n // We promote a technique of a consecutive deletePage/createPage calls in onCreatePage hook,\n // see https://www.gatsbyjs.com/docs/creating-and-modifying-pages/#pass-context-to-pages\n // If we remove a query and then re-add, it will be marked as dirty.\n // This is OK for cold cache but with warm cache we will re-run all of those queries (unnecessarily).\n // We will reconcile the state after createPages API call and actually delete those queries.\n state.deletedQueries.add(action.payload.path)\n return state\n }\n case `API_FINISHED`: {\n if (action.payload.apiName !== `createPages`) {\n return state\n }\n for (const queryId of state.deletedQueries) {\n for (const component of state.trackedComponents.values()) {\n component.pages.delete(queryId)\n }\n state = clearNodeDependencies(state, queryId)\n state = clearConnectionDependencies(state, queryId)\n state.trackedQueries.delete(queryId)\n }\n state.deletedQueries.clear()\n return state\n }\n case `QUERY_EXTRACTED`: {\n // Note: this action is called even in case of\n // extraction error or missing query (with query === ``)\n // TODO: use hash instead of a query text\n const { componentPath, query } = action.payload\n const component = registerComponent(state, componentPath)\n console.log(`reducers/queries`, component, action)\n if (component) {\n if (hasFlag(component.errors, FLAG_ERROR_EXTRACTION)) {\n return state\n }\n if (component.query !== query) {\n // Invalidate all pages associated with a component when query text changes\n for (const queryId of component.pages) {\n const query = state.trackedQueries.get(queryId)\n if (query) {\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_TEXT)\n state = trackDirtyQuery(state, queryId)\n }\n }\n component.query = query\n }\n }\n return state\n }\n case `QUERY_EXTRACTION_GRAPHQL_ERROR`:\n case `QUERY_EXTRACTION_BABEL_ERROR`:\n case `QUERY_EXTRACTION_BABEL_SUCCESS`: {\n const { componentPath } = action.payload\n const component = registerComponent(state, componentPath)\n const set = action.type !== `QUERY_EXTRACTION_BABEL_SUCCESS`\n component.errors = setFlag(component.errors, FLAG_ERROR_EXTRACTION, set)\n return state\n }\n case `REPLACE_STATIC_QUERY`: {\n // Only called when static query text has changed, so no need to compare\n // TODO: unify the behavior?\n const query = registerQuery(state, action.payload.id)\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_TEXT)\n // static queries are not on demand, so skipping tracking which\n // queries were marked dirty recently\n // state = trackDirtyQuery(state, action.payload.id)\n state.deletedQueries.delete(action.payload.id)\n return state\n }\n case `REMOVE_STATIC_QUERY`: {\n state.deletedQueries.add(action.payload)\n return state\n }\n case `CREATE_COMPONENT_DEPENDENCY`: {\n action.payload.forEach(({ path: queryId, nodeId, connection }) => {\n if (nodeId) {\n state = addNodeDependency(state, queryId, nodeId)\n }\n if (connection) {\n state = addConnectionDependency(state, queryId, connection)\n }\n })\n\n return state\n }\n case `QUERY_START`: {\n // Reset data dependencies as they will be updated when running the query\n const { path } = action.payload\n state = clearNodeDependencies(state, path)\n state = clearConnectionDependencies(state, path)\n const query = state.trackedQueries.get(path)\n if (query) {\n query.running = setFlag(query.running, FLAG_RUNNING_INFLIGHT)\n }\n return state\n }\n case `CREATE_NODE`:\n case `DELETE_NODE`: {\n const node = action.payload\n if (!node) {\n return state\n }\n const queriesByNode = state.byNode.get(node.id) ?? []\n const queriesByConnection =\n state.byConnection.get(node.internal.type) ?? []\n\n for (const queryId of queriesByNode) {\n const query = state.trackedQueries.get(queryId)\n if (query) {\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_DATA)\n state = trackDirtyQuery(state, queryId)\n }\n }\n for (const queryId of queriesByConnection) {\n const query = state.trackedQueries.get(queryId)\n if (query) {\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_DATA)\n state = trackDirtyQuery(state, queryId)\n }\n }\n return state\n }\n case `PAGE_QUERY_RUN`: {\n const { path } = action.payload\n const query = registerQuery(state, path)\n query.dirty = 0\n query.running = 0 // TODO: also\n return state\n }\n case `SET_PROGRAM_STATUS`: {\n if (action.payload === `BOOTSTRAP_FINISHED`) {\n // Reset the running state (as it could've been persisted)\n for (const [, query] of state.trackedQueries) {\n query.running = 0\n }\n // Reset list of dirty queries (this is used only to notify runtime and it could've been persisted)\n state.dirtyQueriesListToEmitViaWebsocket = []\n }\n return state\n }\n case `QUERY_CLEAR_DIRTY_QUERIES_LIST_TO_EMIT_VIA_WEBSOCKET`: {\n state.dirtyQueriesListToEmitViaWebsocket = []\n return state\n }\n case `MERGE_WORKER_QUERY_STATE`: {\n assertCorrectWorkerState(action.payload)\n\n state = mergeWorkerDataDependencies(state, action.payload)\n return state\n }\n default:\n return state\n }\n}\n\nfunction setFlag(allFlags: number, flag: number, set = true): number {\n if (allFlags < 0) {\n allFlags = 0\n }\n return set ? allFlags | flag : allFlags & ~flag\n}\n\nexport function hasFlag(allFlags: number, flag: number): boolean {\n return allFlags >= 0 && (allFlags & flag) > 0\n}\n\nfunction addNodeDependency(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId,\n nodeId: NodeId\n): IGatsbyState[\"queries\"] {\n // Perf: using two-side maps.\n // Without additional `queryNodes` map we would have to loop through\n // all existing nodes in `clearNodeDependencies` to delete node <-> query dependency\n let nodeQueries = state.byNode.get(nodeId)\n if (!nodeQueries) {\n nodeQueries = new Set<QueryId>()\n state.byNode.set(nodeId, nodeQueries)\n }\n let queryNodes = state.queryNodes.get(queryId)\n if (!queryNodes) {\n queryNodes = new Set<NodeId>()\n state.queryNodes.set(queryId, queryNodes)\n }\n nodeQueries.add(queryId)\n queryNodes.add(nodeId)\n return state\n}\n\nfunction addConnectionDependency(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId,\n connection: ConnectionName\n): IGatsbyState[\"queries\"] {\n // Note: not using two-side maps for connections as associated overhead\n // for small number of elements is greater then benefits, so no perf. gains\n let queryIds = state.byConnection.get(connection)\n if (!queryIds) {\n queryIds = new Set()\n state.byConnection.set(connection, queryIds)\n }\n queryIds.add(queryId)\n return state\n}\n\nfunction clearNodeDependencies(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IGatsbyState[\"queries\"] {\n const queryNodeIds = state.queryNodes.get(queryId) ?? new Set()\n for (const nodeId of queryNodeIds) {\n const nodeQueries = state.byNode.get(nodeId)\n if (nodeQueries) {\n nodeQueries.delete(queryId)\n }\n }\n return state\n}\n\nfunction clearConnectionDependencies(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IGatsbyState[\"queries\"] {\n for (const [, queryIds] of state.byConnection) {\n queryIds.delete(queryId)\n }\n return state\n}\n\nfunction registerQuery(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IQueryState {\n let query = state.trackedQueries.get(queryId)\n if (!query) {\n query = initialQueryState()\n state.trackedQueries.set(queryId, query)\n }\n return query\n}\n\nfunction registerComponent(\n state: IGatsbyState[\"queries\"],\n componentPath: string\n): IComponentState {\n let component = state.trackedComponents.get(componentPath)\n if (!component) {\n component = initialComponentState()\n component.componentPath = componentPath\n state.trackedComponents.set(componentPath, component)\n }\n return component\n}\n\nfunction trackDirtyQuery(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IGatsbyState[\"queries\"] {\n if (process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND) {\n state.dirtyQueriesListToEmitViaWebsocket.push(queryId)\n }\n\n return state\n}\n\ninterface IWorkerStateChunk {\n workerId: number\n queryStateChunk: IGatsbyState[\"queries\"]\n}\n\nfunction mergeWorkerDataDependencies(\n state: IGatsbyState[\"queries\"],\n workerStateChunk: IWorkerStateChunk\n): IGatsbyState[\"queries\"] {\n const queryState = workerStateChunk.queryStateChunk\n\n // First clear data dependencies for all queries tracked by worker\n for (const queryId of queryState.trackedQueries.keys()) {\n state = clearNodeDependencies(state, queryId)\n state = clearConnectionDependencies(state, queryId)\n }\n\n // Now re-add all data deps from worker\n for (const [nodeId, queries] of queryState.byNode) {\n for (const queryId of queries) {\n state = addNodeDependency(state, queryId, nodeId)\n }\n }\n for (const [connectionName, queries] of queryState.byConnection) {\n for (const queryId of queries) {\n state = addConnectionDependency(state, queryId, connectionName)\n }\n }\n return state\n}\n\nfunction assertCorrectWorkerState({\n queryStateChunk,\n workerId,\n}: IWorkerStateChunk): void {\n if (queryStateChunk.deletedQueries.size !== 0) {\n throw new Error(\n `Assertion failed: workerState.deletedQueries.size === 0 (worker #${workerId})`\n )\n }\n if (queryStateChunk.trackedComponents.size !== 0) {\n throw new Error(\n `Assertion failed: queryStateChunk.trackedComponents.size === 0 (worker #${workerId})`\n )\n }\n for (const query of queryStateChunk.trackedQueries.values()) {\n if (query.dirty) {\n throw new Error(\n `Assertion failed: all worker queries are not dirty (worker #${workerId})`\n )\n }\n if (query.running) {\n throw new Error(\n `Assertion failed: all worker queries are not running (worker #${workerId})`\n )\n }\n }\n}\n"],"file":"queries.js"}
1
+ {"version":3,"sources":["../../../src/redux/reducers/queries.ts"],"names":["FLAG_DIRTY_NEW_PAGE","FLAG_DIRTY_TEXT","FLAG_DIRTY_DATA","FLAG_DIRTY_PAGE_CONTEXT","FLAG_ERROR_EXTRACTION","FLAG_RUNNING_INFLIGHT","initialState","byNode","Map","byConnection","queryNodes","trackedQueries","trackedComponents","deletedQueries","Set","dirtyQueriesListToEmitViaWebsocket","initialQueryState","dirty","running","initialComponentState","componentPath","query","pages","errors","queriesReducer","state","action","type","console","log","path","payload","get","contextModified","registerQuery","setFlag","trackDirtyQuery","registerComponent","add","delete","apiName","queryId","component","values","clearNodeDependencies","clearConnectionDependencies","clear","hasFlag","set","id","forEach","nodeId","connection","addNodeDependency","addConnectionDependency","node","queriesByNode","queriesByConnection","internal","assertCorrectWorkerState","mergeWorkerDataDependencies","allFlags","flag","nodeQueries","queryIds","queryNodeIds","process","env","GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND","push","workerStateChunk","queryState","queryStateChunk","keys","queries","connectionName","workerId","size","Error"],"mappings":"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","sourcesContent":["import {\n ActionsUnion,\n IComponentState,\n IGatsbyState,\n IQueryState,\n} from \"../types\"\n\ntype QueryId = string // page query path or static query id\ntype ComponentPath = string\ntype NodeId = string\ntype ConnectionName = string\n\nexport const FLAG_DIRTY_NEW_PAGE = 0b0001\nexport const FLAG_DIRTY_TEXT = 0b0010\nexport const FLAG_DIRTY_DATA = 0b0100\nexport const FLAG_DIRTY_PAGE_CONTEXT = 0b1000\n\nexport const FLAG_ERROR_EXTRACTION = 0b0001\n\nexport const FLAG_RUNNING_INFLIGHT = 0b0001\n\nconst initialState = (): IGatsbyState[\"queries\"] => {\n return {\n byNode: new Map<NodeId, Set<QueryId>>(),\n byConnection: new Map<ConnectionName, Set<QueryId>>(),\n queryNodes: new Map<QueryId, Set<NodeId>>(),\n trackedQueries: new Map<QueryId, IQueryState>(),\n trackedComponents: new Map<ComponentPath, IComponentState>(),\n deletedQueries: new Set<QueryId>(),\n dirtyQueriesListToEmitViaWebsocket: [],\n }\n}\n\nconst initialQueryState = (): IQueryState => {\n return {\n dirty: -1, // unknown, must be set right after init\n running: 0,\n }\n}\n\nconst initialComponentState = (): IComponentState => {\n return {\n componentPath: ``,\n query: ``,\n pages: new Set<QueryId>(),\n errors: 0,\n // TODO: staticQueries: new Set<QueryId>()\n }\n}\n\n/**\n * Tracks query dirtiness. Dirty queries are queries that:\n *\n * - depend on nodes or node collections (via `actions.createPageDependency`) that have changed.\n * - have been recently extracted (or their query text has changed)\n * - belong to newly created pages (or pages with modified context)\n *\n * Dirty queries must be re-ran.\n */\nexport function queriesReducer(\n state: IGatsbyState[\"queries\"] = initialState(),\n action: ActionsUnion\n): IGatsbyState[\"queries\"] {\n switch (action.type) {\n case `DELETE_CACHE`:\n return initialState()\n\n case `DELETE_QUERIES_CACHE`:\n console.log(`deleting query cache`)\n return initialState()\n\n case `CREATE_PAGE`: {\n const { path, componentPath } = action.payload\n let query = state.trackedQueries.get(path)\n if (!query || action.contextModified) {\n query = registerQuery(state, path)\n query.dirty = setFlag(\n query.dirty,\n action.contextModified ? FLAG_DIRTY_PAGE_CONTEXT : FLAG_DIRTY_NEW_PAGE\n )\n state = trackDirtyQuery(state, path)\n }\n registerComponent(state, componentPath).pages.add(path)\n state.deletedQueries.delete(path)\n return state\n }\n case `DELETE_PAGE`: {\n // Don't actually remove the page query from trackedQueries, just mark it as \"deleted\". Why?\n // We promote a technique of a consecutive deletePage/createPage calls in onCreatePage hook,\n // see https://www.gatsbyjs.com/docs/creating-and-modifying-pages/#pass-context-to-pages\n // If we remove a query and then re-add, it will be marked as dirty.\n // This is OK for cold cache but with warm cache we will re-run all of those queries (unnecessarily).\n // We will reconcile the state after createPages API call and actually delete those queries.\n state.deletedQueries.add(action.payload.path)\n return state\n }\n case `API_FINISHED`: {\n if (action.payload.apiName !== `createPages`) {\n return state\n }\n for (const queryId of state.deletedQueries) {\n for (const component of state.trackedComponents.values()) {\n component.pages.delete(queryId)\n }\n state = clearNodeDependencies(state, queryId)\n state = clearConnectionDependencies(state, queryId)\n state.trackedQueries.delete(queryId)\n }\n state.deletedQueries.clear()\n return state\n }\n case `QUERY_EXTRACTED`: {\n // Note: this action is called even in case of\n // extraction error or missing query (with query === ``)\n // TODO: use hash instead of a query text\n const { componentPath, query } = action.payload\n const component = registerComponent(state, componentPath)\n if (!component) {\n console.log(`reducers/queries`, component, action)\n }\n if (component) {\n if (hasFlag(component.errors, FLAG_ERROR_EXTRACTION)) {\n return state\n }\n if (component.query !== query) {\n // Invalidate all pages associated with a component when query text changes\n for (const queryId of component.pages) {\n const query = state.trackedQueries.get(queryId)\n if (query) {\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_TEXT)\n state = trackDirtyQuery(state, queryId)\n }\n }\n component.query = query\n }\n }\n return state\n }\n case `QUERY_EXTRACTION_GRAPHQL_ERROR`:\n case `QUERY_EXTRACTION_BABEL_ERROR`:\n case `QUERY_EXTRACTION_BABEL_SUCCESS`: {\n const { componentPath } = action.payload\n const component = registerComponent(state, componentPath)\n const set = action.type !== `QUERY_EXTRACTION_BABEL_SUCCESS`\n component.errors = setFlag(component.errors, FLAG_ERROR_EXTRACTION, set)\n return state\n }\n case `REPLACE_STATIC_QUERY`: {\n // Only called when static query text has changed, so no need to compare\n // TODO: unify the behavior?\n const query = registerQuery(state, action.payload.id)\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_TEXT)\n // static queries are not on demand, so skipping tracking which\n // queries were marked dirty recently\n // state = trackDirtyQuery(state, action.payload.id)\n state.deletedQueries.delete(action.payload.id)\n return state\n }\n case `REMOVE_STATIC_QUERY`: {\n state.deletedQueries.add(action.payload)\n return state\n }\n case `CREATE_COMPONENT_DEPENDENCY`: {\n action.payload.forEach(({ path: queryId, nodeId, connection }) => {\n if (nodeId) {\n state = addNodeDependency(state, queryId, nodeId)\n }\n if (connection) {\n state = addConnectionDependency(state, queryId, connection)\n }\n })\n\n return state\n }\n case `QUERY_START`: {\n // Reset data dependencies as they will be updated when running the query\n const { path } = action.payload\n state = clearNodeDependencies(state, path)\n state = clearConnectionDependencies(state, path)\n const query = state.trackedQueries.get(path)\n if (query) {\n query.running = setFlag(query.running, FLAG_RUNNING_INFLIGHT)\n }\n return state\n }\n case `CREATE_NODE`:\n case `DELETE_NODE`: {\n const node = action.payload\n if (!node) {\n return state\n }\n const queriesByNode = state.byNode.get(node.id) ?? []\n const queriesByConnection =\n state.byConnection.get(node.internal.type) ?? []\n\n for (const queryId of queriesByNode) {\n const query = state.trackedQueries.get(queryId)\n if (query) {\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_DATA)\n state = trackDirtyQuery(state, queryId)\n }\n }\n for (const queryId of queriesByConnection) {\n const query = state.trackedQueries.get(queryId)\n if (query) {\n query.dirty = setFlag(query.dirty, FLAG_DIRTY_DATA)\n state = trackDirtyQuery(state, queryId)\n }\n }\n return state\n }\n case `PAGE_QUERY_RUN`: {\n const { path } = action.payload\n const query = registerQuery(state, path)\n query.dirty = 0\n query.running = 0 // TODO: also\n return state\n }\n case `SET_PROGRAM_STATUS`: {\n if (action.payload === `BOOTSTRAP_FINISHED`) {\n // Reset the running state (as it could've been persisted)\n for (const [, query] of state.trackedQueries) {\n query.running = 0\n }\n // Reset list of dirty queries (this is used only to notify runtime and it could've been persisted)\n state.dirtyQueriesListToEmitViaWebsocket = []\n }\n return state\n }\n case `QUERY_CLEAR_DIRTY_QUERIES_LIST_TO_EMIT_VIA_WEBSOCKET`: {\n state.dirtyQueriesListToEmitViaWebsocket = []\n return state\n }\n case `MERGE_WORKER_QUERY_STATE`: {\n assertCorrectWorkerState(action.payload)\n\n state = mergeWorkerDataDependencies(state, action.payload)\n return state\n }\n default:\n return state\n }\n}\n\nfunction setFlag(allFlags: number, flag: number, set = true): number {\n if (allFlags < 0) {\n allFlags = 0\n }\n return set ? allFlags | flag : allFlags & ~flag\n}\n\nexport function hasFlag(allFlags: number, flag: number): boolean {\n return allFlags >= 0 && (allFlags & flag) > 0\n}\n\nfunction addNodeDependency(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId,\n nodeId: NodeId\n): IGatsbyState[\"queries\"] {\n // Perf: using two-side maps.\n // Without additional `queryNodes` map we would have to loop through\n // all existing nodes in `clearNodeDependencies` to delete node <-> query dependency\n let nodeQueries = state.byNode.get(nodeId)\n if (!nodeQueries) {\n nodeQueries = new Set<QueryId>()\n state.byNode.set(nodeId, nodeQueries)\n }\n let queryNodes = state.queryNodes.get(queryId)\n if (!queryNodes) {\n queryNodes = new Set<NodeId>()\n state.queryNodes.set(queryId, queryNodes)\n }\n nodeQueries.add(queryId)\n queryNodes.add(nodeId)\n return state\n}\n\nfunction addConnectionDependency(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId,\n connection: ConnectionName\n): IGatsbyState[\"queries\"] {\n // Note: not using two-side maps for connections as associated overhead\n // for small number of elements is greater then benefits, so no perf. gains\n let queryIds = state.byConnection.get(connection)\n if (!queryIds) {\n queryIds = new Set()\n state.byConnection.set(connection, queryIds)\n }\n queryIds.add(queryId)\n return state\n}\n\nfunction clearNodeDependencies(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IGatsbyState[\"queries\"] {\n const queryNodeIds = state.queryNodes.get(queryId) ?? new Set()\n for (const nodeId of queryNodeIds) {\n const nodeQueries = state.byNode.get(nodeId)\n if (nodeQueries) {\n nodeQueries.delete(queryId)\n }\n }\n return state\n}\n\nfunction clearConnectionDependencies(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IGatsbyState[\"queries\"] {\n for (const [, queryIds] of state.byConnection) {\n queryIds.delete(queryId)\n }\n return state\n}\n\nfunction registerQuery(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IQueryState {\n let query = state.trackedQueries.get(queryId)\n if (!query) {\n query = initialQueryState()\n state.trackedQueries.set(queryId, query)\n }\n return query\n}\n\nfunction registerComponent(\n state: IGatsbyState[\"queries\"],\n componentPath: string\n): IComponentState {\n let component = state.trackedComponents.get(componentPath)\n if (!component) {\n component = initialComponentState()\n component.componentPath = componentPath\n state.trackedComponents.set(componentPath, component)\n }\n return component\n}\n\nfunction trackDirtyQuery(\n state: IGatsbyState[\"queries\"],\n queryId: QueryId\n): IGatsbyState[\"queries\"] {\n if (process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND) {\n state.dirtyQueriesListToEmitViaWebsocket.push(queryId)\n }\n\n return state\n}\n\ninterface IWorkerStateChunk {\n workerId: number\n queryStateChunk: IGatsbyState[\"queries\"]\n}\n\nfunction mergeWorkerDataDependencies(\n state: IGatsbyState[\"queries\"],\n workerStateChunk: IWorkerStateChunk\n): IGatsbyState[\"queries\"] {\n const queryState = workerStateChunk.queryStateChunk\n\n // First clear data dependencies for all queries tracked by worker\n for (const queryId of queryState.trackedQueries.keys()) {\n state = clearNodeDependencies(state, queryId)\n state = clearConnectionDependencies(state, queryId)\n }\n\n // Now re-add all data deps from worker\n for (const [nodeId, queries] of queryState.byNode) {\n for (const queryId of queries) {\n state = addNodeDependency(state, queryId, nodeId)\n }\n }\n for (const [connectionName, queries] of queryState.byConnection) {\n for (const queryId of queries) {\n state = addConnectionDependency(state, queryId, connectionName)\n }\n }\n return state\n}\n\nfunction assertCorrectWorkerState({\n queryStateChunk,\n workerId,\n}: IWorkerStateChunk): void {\n if (queryStateChunk.deletedQueries.size !== 0) {\n throw new Error(\n `Assertion failed: workerState.deletedQueries.size === 0 (worker #${workerId})`\n )\n }\n if (queryStateChunk.trackedComponents.size !== 0) {\n throw new Error(\n `Assertion failed: queryStateChunk.trackedComponents.size === 0 (worker #${workerId})`\n )\n }\n for (const query of queryStateChunk.trackedQueries.values()) {\n if (query.dirty) {\n throw new Error(\n `Assertion failed: all worker queries are not dirty (worker #${workerId})`\n )\n }\n if (query.running) {\n throw new Error(\n `Assertion failed: all worker queries are not running (worker #${workerId})`\n )\n }\n }\n}\n"],"file":"queries.js"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.tickReducer = void 0;
5
+
6
+ const tickReducer = (state = new Map(), action) => {
7
+ switch (action.type) {
8
+ case `DELETE_CACHE`:
9
+ return new Map();
10
+
11
+ case `SET_CHANGED_NODES`:
12
+ {
13
+ console.log(`SET_CHANGED_NODES`);
14
+ state.set(`changedNodes`, action.payload);
15
+ return state;
16
+ }
17
+
18
+ case `SET_CHANGED_PAGES`:
19
+ {
20
+ state.set(`changedPages`, action.payload);
21
+ return state;
22
+ }
23
+
24
+ default:
25
+ return state;
26
+ }
27
+ };
28
+
29
+ exports.tickReducer = tickReducer;
30
+ //# sourceMappingURL=tick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/redux/reducers/tick.ts"],"names":["tickReducer","state","Map","action","type","console","log","set","payload"],"mappings":";;;;;AAAO,MAAMA,WAAW,GAAG,CACzBC,KAA2B,GAAG,IAAIC,GAAJ,EADL,EAEzBC,MAFyB,KAGA;AACzB,UAAQA,MAAM,CAACC,IAAf;AACE,SAAM,cAAN;AACE,aAAO,IAAIF,GAAJ,EAAP;;AAEF,SAAM,mBAAN;AAA0B;AACxBG,QAAAA,OAAO,CAACC,GAAR,CAAa,mBAAb;AACAL,QAAAA,KAAK,CAACM,GAAN,CAAW,cAAX,EAA0BJ,MAAM,CAACK,OAAjC;AACA,eAAOP,KAAP;AACD;;AAED,SAAM,mBAAN;AAA0B;AACxBA,QAAAA,KAAK,CAACM,GAAN,CAAW,cAAX,EAA0BJ,MAAM,CAACK,OAAjC;AACA,eAAOP,KAAP;AACD;;AAED;AACE,aAAOA,KAAP;AAhBJ;AAkBD,CAtBM","sourcesContent":["export const tickReducer = (\n state: IGatsbyState[\"tick\"] = new Map(),\n action: ActionsUnion\n): IGatsbyState[\"tick\"] => {\n switch (action.type) {\n case `DELETE_CACHE`:\n return new Map()\n\n case `SET_CHANGED_NODES`: {\n console.log(`SET_CHANGED_NODES`)\n state.set(`changedNodes`, action.payload)\n return state\n }\n\n case `SET_CHANGED_PAGES`: {\n state.set(`changedPages`, action.payload)\n return state\n }\n\n default:\n return state\n }\n}\n"],"file":"tick.js"}
@@ -360,7 +360,8 @@ const runAPI = async (plugin, api, args, activity) => {
360
360
  });
361
361
  const {
362
362
  config,
363
- program
363
+ program,
364
+ tick
364
365
  } = store.getState();
365
366
  const pathPrefix = program.prefixPaths && config.pathPrefix || ``;
366
367
 
@@ -434,6 +435,7 @@ const runAPI = async (plugin, api, args, activity) => {
434
435
  store,
435
436
  emitter,
436
437
  getCache,
438
+ tick,
437
439
  getNodes,
438
440
  getNode,
439
441
  getNodesByType,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/api-runner-node.js"],"names":["Promise","require","_","chalk","bindActionCreators","origBindActionCreators","memoize","tracer","globalTracer","reporter","stackTrace","codeFrameColumns","fs","getCache","createContentDigest","_createContentDigest","emitter","store","getNodes","getNode","getNodesByType","getNodeAndSavePathDependency","loadNodeContent","getPublicPath","requireGatsbyPlugin","getNonGatsbyCodeFrameFormatted","trackBuildError","decorateEvent","node","internal","contentDigest","undefined","owner","fieldOwners","ignoreType","counter","fields","process","env","BLUEBIRD_DEBUG","BLUEBIRD_LONG_STACK_TRACES","config","longStackTraces","boundPluginActionCreators","doubleBind","boundActionCreators","api","plugin","actionOptions","traceId","deferNodeMutation","defer","actionKey","name","keys","Object","doubleBoundActionCreators","i","length","key","boundActionCreator","args","initAPICallTracing","parentSpan","startSpan","spanName","spanArgs","defaultSpanArgs","childOf","merge","deferredAction","type","resolve","emit","payload","NODE_MUTATION_ACTIONS","deferActions","actions","deferred","forEach","action","getLocalReporter","activity","panicOnBuild","bind","getErrorMapWithPluginName","pluginName","errorMap","entries","reduce","memo","val","extendLocalReporterToCatchPluginErrors","runningActivities","setErrorMap","error","panic","errorMeta","activityTimer","apply","originalStart","start","originalEnd","end","add","delete","createProgress","originalDone","done","getUninitializedCache","message","get","Error","set","del","availableActionsCache","Map","publicPath","runAPI","gatsbyNode","spanOptions","pluginSpan","setTag","publicActions","restrictedActionsAvailableInAPI","availableActions","has","dispatch","program","getState","pathPrefix","prefixPaths","namespacedCreateNodeId","id","tracing","cache","apiFinished","alreadyDisplayed","createPageAction","createPage","warning","stripIndent","bold","possiblyCodeFrame","push","warn","join","localReporter","Set","extendedLocalReporter","endInProgressActivitiesCreatedByThisRun","apiCallArgs","basePath","createNodeId","schema","buildObjectType","buildUnionType","buildInterfaceType","buildInputObjectType","buildEnumType","buildScalarType","pluginOptions","fromCallback","callback","cb","err","finish","e","version","apisRunningById","apisRunningByTraceId","waitingForCasacadeToFinish","apiRunnerNode","pluginSource","plugins","flattenedPlugins","implementingPlugins","filter","nodeAPIs","includes","traceTags","waitForCascadingActions","apiSpanArgs","apiSpan","value","apiRunInstance","span","startTime","Date","toJSON","filename","page","path","argsJson","JSON","stringify","omit","size","currentCount","stopQueuedApiRuns","onAPIRunComplete","actionHandler","on","off","apiRunPromiseOptions","runPromise","GATSBY_EXPERIMENTAL_PARALLEL_SOURCING","map","concurrency","mapSeries","unstable_shouldOnCreateNode","catch","file","parse","find","test","fileName","codeFrame","structuredError","lineNumber","line","columnNumber","column","code","readFileSync","encoding","highlightCode","_e","location","filePath","context","then","results","result","isEmpty","instance","apisByTraceIdCount","module","exports"],"mappings":"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","sourcesContent":["const Promise = require(`bluebird`)\nconst _ = require(`lodash`)\nconst chalk = require(`chalk`)\nconst { bindActionCreators: origBindActionCreators } = require(`redux`)\nconst memoize = require(`memoizee`)\n\nconst bindActionCreators = memoize(origBindActionCreators)\n\nconst tracer = require(`opentracing`).globalTracer()\nconst reporter = require(`gatsby-cli/lib/reporter`)\nconst stackTrace = require(`stack-trace`)\nconst { codeFrameColumns } = require(`@babel/code-frame`)\nconst fs = require(`fs-extra`)\nconst { getCache } = require(`./get-cache`)\nimport { createNodeId } from \"./create-node-id\"\nconst {\n createContentDigest: _createContentDigest,\n} = require(`gatsby-core-utils`)\nimport {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n} from \"../schema/types/type-builders\"\nconst { emitter, store } = require(`../redux`)\nconst { getNodes, getNode, getNodesByType } = require(`../datastore`)\nconst { getNodeAndSavePathDependency, loadNodeContent } = require(`./nodes`)\nconst { getPublicPath } = require(`./get-public-path`)\nconst { requireGatsbyPlugin } = require(`./require-gatsby-plugin`)\nconst { getNonGatsbyCodeFrameFormatted } = require(`./stack-trace-utils`)\nconst { trackBuildError, decorateEvent } = require(`gatsby-telemetry`)\nimport errorParser from \"./api-runner-error-parser\"\n\n// Override createContentDigest to remove autogenerated data from nodes to\n// ensure consistent digests.\nfunction createContentDigest(node) {\n return _createContentDigest({\n ...node,\n internal: {\n ...node.internal,\n // Remove auto-generated fields that'd prevent\n // creating a consistent contentDigest.\n contentDigest: undefined,\n owner: undefined,\n fieldOwners: undefined,\n ignoreType: undefined,\n counter: undefined,\n },\n fields: undefined,\n })\n}\n\nif (!process.env.BLUEBIRD_DEBUG && !process.env.BLUEBIRD_LONG_STACK_TRACES) {\n // Unless specified - disable longStackTraces\n // as this have severe perf penalty ( http://bluebirdjs.com/docs/api/promise.longstacktraces.html )\n // This is mainly for `gatsby develop` due to NODE_ENV being set to development\n // which cause bluebird to enable longStackTraces\n // `gatsby build` (with NODE_ENV=production) already doesn't enable longStackTraces\n Promise.config({ longStackTraces: false })\n}\n\n// Bind action creators per plugin so we can auto-add\n// metadata to actions they create.\nconst boundPluginActionCreators = {}\nconst doubleBind = (boundActionCreators, api, plugin, actionOptions) => {\n const { traceId, deferNodeMutation } = actionOptions\n const defer = deferNodeMutation ? `defer-node-mutation` : ``\n const actionKey = plugin.name + api + traceId + defer\n if (boundPluginActionCreators[actionKey]) {\n return boundPluginActionCreators[actionKey]\n } else {\n const keys = Object.keys(boundActionCreators)\n const doubleBoundActionCreators = {}\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const boundActionCreator = boundActionCreators[key]\n if (typeof boundActionCreator === `function`) {\n doubleBoundActionCreators[key] = (...args) => {\n // Let action callers override who the plugin is. Shouldn't be\n // used that often.\n if (args.length === 1) {\n return boundActionCreator(args[0], plugin, actionOptions)\n } else if (args.length === 2) {\n return boundActionCreator(args[0], args[1], actionOptions)\n }\n return undefined\n }\n }\n }\n boundPluginActionCreators[actionKey] = doubleBoundActionCreators\n return doubleBoundActionCreators\n }\n}\n\nconst initAPICallTracing = parentSpan => {\n const startSpan = (spanName, spanArgs = {}) => {\n const defaultSpanArgs = { childOf: parentSpan }\n\n return tracer.startSpan(spanName, _.merge(defaultSpanArgs, spanArgs))\n }\n\n return {\n tracer,\n parentSpan,\n startSpan,\n }\n}\n\nconst deferredAction =\n type =>\n (...args) => {\n // Regular createNode returns a Promise, but when deferred we need\n // to wrap it in another which we resolve when it's actually called\n if (type === `createNode`) {\n return new Promise(resolve => {\n emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n resolve,\n })\n })\n }\n return emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n })\n }\n\nconst NODE_MUTATION_ACTIONS = [\n `createNode`,\n `deleteNode`,\n `touchNode`,\n `createParentChildLink`,\n `createNodeField`,\n]\n\nconst deferActions = actions => {\n const deferred = { ...actions }\n NODE_MUTATION_ACTIONS.forEach(action => {\n deferred[action] = deferredAction(action)\n })\n return deferred\n}\n\n/**\n * Create a local reporter\n * Used to override reporter methods with activity methods\n */\nfunction getLocalReporter({ activity, reporter }) {\n // If we have an activity, bind panicOnBuild to the activities method to\n // join them\n if (activity) {\n return { ...reporter, panicOnBuild: activity.panicOnBuild.bind(activity) }\n }\n\n return reporter\n}\n\nfunction getErrorMapWithPluginName(pluginName, errorMap) {\n const entries = Object.entries(errorMap)\n\n return entries.reduce((memo, [key, val]) => {\n memo[`${pluginName}_${key}`] = val\n\n return memo\n }, {})\n}\n\nfunction extendLocalReporterToCatchPluginErrors({\n reporter,\n pluginName,\n runningActivities,\n}) {\n let setErrorMap\n\n let error = reporter.error\n let panic = reporter.panic\n let panicOnBuild = reporter.panicOnBuild\n\n if (pluginName && reporter?.setErrorMap) {\n setErrorMap = errorMap =>\n reporter.setErrorMap(getErrorMapWithPluginName(pluginName, errorMap))\n\n error = (errorMeta, error) => {\n reporter.error(errorMeta, error, pluginName)\n }\n\n panic = (errorMeta, error) => {\n reporter.panic(errorMeta, error, pluginName)\n }\n\n panicOnBuild = (errorMeta, error) => {\n reporter.panicOnBuild(errorMeta, error, pluginName)\n }\n }\n\n return {\n ...reporter,\n setErrorMap,\n error,\n panic,\n panicOnBuild,\n activityTimer: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.activityTimer.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n\n createProgress: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.createProgress.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n const originalDone = activity.done\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n activity.done = () => {\n originalDone.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n }\n}\n\nconst getUninitializedCache = plugin => {\n const message =\n `Usage of \"cache\" instance in \"onPreInit\" API is not supported as ` +\n `this API runs before cache initialization` +\n (plugin && plugin !== `default-site-plugin` ? ` (called in ${plugin})` : ``)\n\n return {\n // GatsbyCache\n async get() {\n throw new Error(message)\n },\n async set() {\n throw new Error(message)\n },\n async del() {\n throw new Error(message)\n },\n }\n}\n\nconst availableActionsCache = new Map()\nlet publicPath\nconst runAPI = async (plugin, api, args, activity) => {\n const gatsbyNode = requireGatsbyPlugin(plugin, `gatsby-node`)\n\n if (gatsbyNode[api]) {\n const parentSpan = args && args.parentSpan\n const spanOptions = parentSpan ? { childOf: parentSpan } : {}\n let pluginSpan\n if (parentSpan) {\n pluginSpan = tracer.startSpan(`run-plugin`, spanOptions)\n\n pluginSpan.setTag(`api`, api)\n pluginSpan.setTag(`plugin`, plugin.name)\n }\n const {\n publicActions,\n restrictedActionsAvailableInAPI,\n } = require(`../redux/actions`)\n\n let availableActions\n if (availableActionsCache.has(api)) {\n availableActions = availableActionsCache.get(api)\n } else {\n availableActions = {\n ...publicActions,\n ...(restrictedActionsAvailableInAPI[api] || {}),\n }\n\n availableActionsCache.set(api, availableActions)\n }\n\n let boundActionCreators = bindActionCreators(\n availableActions,\n store.dispatch\n )\n\n if (args.deferNodeMutation) {\n boundActionCreators = deferActions(boundActionCreators)\n }\n\n const doubleBoundActionCreators = doubleBind(\n boundActionCreators,\n api,\n plugin,\n { ...args, parentSpan: pluginSpan, activity }\n )\n\n const { config, program } = store.getState()\n\n const pathPrefix = (program.prefixPaths && config.pathPrefix) || ``\n\n if (typeof publicPath === `undefined`) {\n publicPath = getPublicPath({ ...config, ...program }, ``)\n }\n\n const namespacedCreateNodeId = id => createNodeId(id, plugin.name)\n\n const tracing = initAPICallTracing(pluginSpan)\n\n // See https://github.com/gatsbyjs/gatsby/issues/11369\n const cache =\n api === `onPreInit`\n ? getUninitializedCache(plugin.name)\n : getCache(plugin.name)\n\n // Ideally this would be more abstracted and applied to more situations, but right now\n // this can be potentially breaking so targeting `createPages` API and `createPage` action\n let actions = doubleBoundActionCreators\n let apiFinished = false\n if (api === `createPages`) {\n let alreadyDisplayed = false\n const createPageAction = actions.createPage\n // create new actions object with wrapped createPage action\n // doubleBoundActionCreators is memoized, so we can't just\n // reassign createPage field as this would cause this extra logic\n // to be used in subsequent APIs and we only want to target this `createPages` call.\n actions = {\n ...actions,\n createPage: (...args) => {\n createPageAction(...args)\n if (apiFinished && !alreadyDisplayed) {\n const warning = [\n reporter.stripIndent(`\n Action ${chalk.bold(\n `createPage`\n )} was called outside of its expected asynchronous lifecycle ${chalk.bold(\n `createPages`\n )} in ${chalk.bold(plugin.name)}.\n Ensure that you return a Promise from ${chalk.bold(\n `createPages`\n )} and are awaiting any asynchronous method invocations (like ${chalk.bold(\n `graphql`\n )} or http requests).\n For more info and debugging tips: see ${chalk.bold(\n `https://gatsby.dev/sync-actions`\n )}\n `),\n ]\n\n const possiblyCodeFrame = getNonGatsbyCodeFrameFormatted()\n if (possiblyCodeFrame) {\n warning.push(possiblyCodeFrame)\n }\n\n reporter.warn(warning.join(`\\n\\n`))\n alreadyDisplayed = true\n }\n },\n }\n }\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const runningActivities = new Set()\n\n const extendedLocalReporter = extendLocalReporterToCatchPluginErrors({\n reporter: localReporter,\n pluginName: plugin.name,\n runningActivities,\n })\n\n const endInProgressActivitiesCreatedByThisRun = () => {\n runningActivities.forEach(activity => activity.end())\n }\n\n const apiCallArgs = [\n {\n ...args,\n parentSpan: pluginSpan,\n basePath: pathPrefix,\n pathPrefix: publicPath,\n actions,\n loadNodeContent,\n store,\n emitter,\n getCache,\n getNodes,\n getNode,\n getNodesByType,\n reporter: extendedLocalReporter,\n getNodeAndSavePathDependency,\n cache,\n createNodeId: namespacedCreateNodeId,\n createContentDigest,\n tracing,\n schema: {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n },\n },\n plugin.pluginOptions,\n ]\n\n // If the plugin is using a callback use that otherwise\n // expect a Promise to be returned.\n if (gatsbyNode[api].length === 3) {\n return Promise.fromCallback(callback => {\n const cb = (err, val) => {\n pluginSpan?.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n callback(err, val)\n }\n\n try {\n gatsbyNode[api](...apiCallArgs, cb)\n } catch (e) {\n trackBuildError(api, {\n error: e,\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n throw e\n }\n })\n } else {\n try {\n return await gatsbyNode[api](...apiCallArgs)\n } finally {\n pluginSpan?.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n }\n }\n }\n\n return null\n}\n\nconst apisRunningById = new Map()\nconst apisRunningByTraceId = new Map()\nlet waitingForCasacadeToFinish = []\n\nfunction apiRunnerNode(api, args = {}, { pluginSource, activity } = {}) {\n const plugins = store.getState().flattenedPlugins\n\n // Get the list of plugins that implement this API.\n // Also: Break infinite loops. Sometimes a plugin will implement an API and\n // call an action which will trigger the same API being called.\n // `onCreatePage` is the only example right now. In these cases, we should\n // avoid calling the originating plugin again.\n let implementingPlugins = plugins.filter(\n plugin => plugin.nodeAPIs.includes(api) && plugin.name !== pluginSource\n )\n\n if (api === `sourceNodes` && args.pluginName) {\n implementingPlugins = implementingPlugins.filter(\n plugin => plugin.name === args.pluginName\n )\n }\n\n // If there's no implementing plugins, return early.\n if (implementingPlugins.length === 0) {\n return null\n }\n\n return new Promise(resolve => {\n const { parentSpan, traceId, traceTags, waitForCascadingActions } = args\n const apiSpanArgs = parentSpan ? { childOf: parentSpan } : {}\n let apiSpan\n if (api !== `setFieldsOnGraphQLNodeType`) {\n apiSpan = tracer.startSpan(`run-api`, apiSpanArgs)\n\n apiSpan.setTag(`api`, api)\n _.forEach(traceTags, (value, key) => {\n apiSpan.setTag(key, value)\n })\n }\n\n const apiRunInstance = {\n api,\n args,\n pluginSource,\n resolve,\n span: apiSpan,\n startTime: new Date().toJSON(),\n traceId,\n }\n\n // Generate IDs for api runs. Most IDs we generate from the args\n // but some API calls can have very large argument objects so we\n // have special ways of generating IDs for those to avoid stringifying\n // large objects.\n let id\n if (api === `setFieldsOnGraphQLNodeType`) {\n id = `${api}${apiRunInstance.startTime}${args.type.name}${traceId}`\n } else if (api === `onCreateNode`) {\n id = `${api}${apiRunInstance.startTime}${args.node.internal.contentDigest}${traceId}`\n } else if (api === `preprocessSource`) {\n id = `${api}${apiRunInstance.startTime}${args.filename}${traceId}`\n } else if (api === `onCreatePage`) {\n id = `${api}${apiRunInstance.startTime}${args.page.path}${traceId}`\n } else {\n // When tracing is turned on, the `args` object will have a\n // `parentSpan` field that can be quite large. So we omit it\n // before calling stringify\n const argsJson = JSON.stringify(_.omit(args, `parentSpan`))\n id = `${api}|${apiRunInstance.startTime}|${apiRunInstance.traceId}|${argsJson}`\n }\n apiRunInstance.id = id\n\n if (waitForCascadingActions) {\n waitingForCasacadeToFinish.push(apiRunInstance)\n }\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_START`)\n }\n\n apisRunningById.set(apiRunInstance.id, apiRunInstance)\n if (apisRunningByTraceId.has(apiRunInstance.traceId)) {\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount + 1)\n } else {\n apisRunningByTraceId.set(apiRunInstance.traceId, 1)\n }\n\n let stopQueuedApiRuns = false\n let onAPIRunComplete = null\n if (api === `onCreatePage`) {\n const path = args.page.path\n const actionHandler = action => {\n if (action.payload.path === path) {\n stopQueuedApiRuns = true\n }\n }\n emitter.on(`DELETE_PAGE`, actionHandler)\n onAPIRunComplete = () => {\n emitter.off(`DELETE_PAGE`, actionHandler)\n }\n }\n\n let apiRunPromiseOptions = {}\n let runPromise\n if (\n api === `sourceNodes` &&\n process.env.GATSBY_EXPERIMENTAL_PARALLEL_SOURCING\n ) {\n runPromise = Promise.map\n apiRunPromiseOptions.concurrency = 20\n } else {\n runPromise = Promise.mapSeries\n apiRunPromiseOptions = undefined\n }\n\n runPromise(\n implementingPlugins,\n plugin => {\n if (stopQueuedApiRuns) {\n return null\n }\n\n const gatsbyNode = requireGatsbyPlugin(plugin, `gatsby-node`)\n const pluginName =\n plugin.name === `default-site-plugin` ? `gatsby-node.js` : plugin.name\n\n // TODO: rethink createNode API to handle this better\n if (\n api === `onCreateNode` &&\n gatsbyNode?.unstable_shouldOnCreateNode && // Don't bail if this api is not exported\n !gatsbyNode.unstable_shouldOnCreateNode(\n { node: args.node },\n plugin.pluginOptions\n )\n ) {\n // Do not try to schedule an async event for this node for this plugin\n return null\n }\n\n return new Promise(resolve => {\n resolve(\n runAPI(plugin, api, { ...args, parentSpan: apiSpan }, activity)\n )\n }).catch(err => {\n decorateEvent(`BUILD_PANIC`, {\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const file = stackTrace\n .parse(err)\n .find(file => /gatsby-node/.test(file.fileName))\n\n let codeFrame = ``\n const structuredError = errorParser({ err })\n\n if (file) {\n const { fileName, lineNumber: line, columnNumber: column } = file\n\n try {\n const code = fs.readFileSync(fileName, { encoding: `utf-8` })\n codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line,\n column,\n },\n },\n {\n highlightCode: true,\n }\n )\n } catch (_e) {\n // sometimes stack trace point to not existing file\n // particularly when file is transpiled and path actually changes\n // (like pointing to not existing `src` dir or original typescript file)\n }\n\n structuredError.location = {\n start: { line: line, column: column },\n }\n structuredError.filePath = fileName\n }\n\n structuredError.context = {\n ...structuredError.context,\n pluginName,\n api,\n codeFrame,\n }\n\n localReporter.panicOnBuild(structuredError)\n\n return null\n })\n },\n apiRunPromiseOptions\n ).then(results => {\n if (onAPIRunComplete) {\n onAPIRunComplete()\n }\n // Remove runner instance\n apisRunningById.delete(apiRunInstance.id)\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount - 1)\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_QUEUE_EMPTY`)\n }\n\n // Filter empty results\n apiRunInstance.results = results.filter(result => !_.isEmpty(result))\n\n // Filter out empty responses and return if the\n // api caller isn't waiting for cascading actions to finish.\n if (!waitForCascadingActions) {\n apiSpan?.finish()\n resolve(apiRunInstance.results)\n }\n\n // Check if any of our waiters are done.\n waitingForCasacadeToFinish = waitingForCasacadeToFinish.filter(\n instance => {\n // If none of its trace IDs are running, it's done.\n const apisByTraceIdCount = apisRunningByTraceId.get(instance.traceId)\n if (apisByTraceIdCount === 0) {\n instance.span?.finish()\n instance.resolve(instance.results)\n return false\n } else {\n return true\n }\n }\n )\n return\n })\n })\n}\n\nmodule.exports = apiRunnerNode\n"],"file":"api-runner-node.js"}
1
+ {"version":3,"sources":["../../src/utils/api-runner-node.js"],"names":["Promise","require","_","chalk","bindActionCreators","origBindActionCreators","memoize","tracer","globalTracer","reporter","stackTrace","codeFrameColumns","fs","getCache","createContentDigest","_createContentDigest","emitter","store","getNodes","getNode","getNodesByType","getNodeAndSavePathDependency","loadNodeContent","getPublicPath","requireGatsbyPlugin","getNonGatsbyCodeFrameFormatted","trackBuildError","decorateEvent","node","internal","contentDigest","undefined","owner","fieldOwners","ignoreType","counter","fields","process","env","BLUEBIRD_DEBUG","BLUEBIRD_LONG_STACK_TRACES","config","longStackTraces","boundPluginActionCreators","doubleBind","boundActionCreators","api","plugin","actionOptions","traceId","deferNodeMutation","defer","actionKey","name","keys","Object","doubleBoundActionCreators","i","length","key","boundActionCreator","args","initAPICallTracing","parentSpan","startSpan","spanName","spanArgs","defaultSpanArgs","childOf","merge","deferredAction","type","resolve","emit","payload","NODE_MUTATION_ACTIONS","deferActions","actions","deferred","forEach","action","getLocalReporter","activity","panicOnBuild","bind","getErrorMapWithPluginName","pluginName","errorMap","entries","reduce","memo","val","extendLocalReporterToCatchPluginErrors","runningActivities","setErrorMap","error","panic","errorMeta","activityTimer","apply","originalStart","start","originalEnd","end","add","delete","createProgress","originalDone","done","getUninitializedCache","message","get","Error","set","del","availableActionsCache","Map","publicPath","runAPI","gatsbyNode","spanOptions","pluginSpan","setTag","publicActions","restrictedActionsAvailableInAPI","availableActions","has","dispatch","program","tick","getState","pathPrefix","prefixPaths","namespacedCreateNodeId","id","tracing","cache","apiFinished","alreadyDisplayed","createPageAction","createPage","warning","stripIndent","bold","possiblyCodeFrame","push","warn","join","localReporter","Set","extendedLocalReporter","endInProgressActivitiesCreatedByThisRun","apiCallArgs","basePath","createNodeId","schema","buildObjectType","buildUnionType","buildInterfaceType","buildInputObjectType","buildEnumType","buildScalarType","pluginOptions","fromCallback","callback","cb","err","finish","e","version","apisRunningById","apisRunningByTraceId","waitingForCasacadeToFinish","apiRunnerNode","pluginSource","plugins","flattenedPlugins","implementingPlugins","filter","nodeAPIs","includes","traceTags","waitForCascadingActions","apiSpanArgs","apiSpan","value","apiRunInstance","span","startTime","Date","toJSON","filename","page","path","argsJson","JSON","stringify","omit","size","currentCount","stopQueuedApiRuns","onAPIRunComplete","actionHandler","on","off","apiRunPromiseOptions","runPromise","GATSBY_EXPERIMENTAL_PARALLEL_SOURCING","map","concurrency","mapSeries","unstable_shouldOnCreateNode","catch","file","parse","find","test","fileName","codeFrame","structuredError","lineNumber","line","columnNumber","column","code","readFileSync","encoding","highlightCode","_e","location","filePath","context","then","results","result","isEmpty","instance","apisByTraceIdCount","module","exports"],"mappings":"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","sourcesContent":["const Promise = require(`bluebird`)\nconst _ = require(`lodash`)\nconst chalk = require(`chalk`)\nconst { bindActionCreators: origBindActionCreators } = require(`redux`)\nconst memoize = require(`memoizee`)\n\nconst bindActionCreators = memoize(origBindActionCreators)\n\nconst tracer = require(`opentracing`).globalTracer()\nconst reporter = require(`gatsby-cli/lib/reporter`)\nconst stackTrace = require(`stack-trace`)\nconst { codeFrameColumns } = require(`@babel/code-frame`)\nconst fs = require(`fs-extra`)\nconst { getCache } = require(`./get-cache`)\nimport { createNodeId } from \"./create-node-id\"\nconst {\n createContentDigest: _createContentDigest,\n} = require(`gatsby-core-utils`)\nimport {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n} from \"../schema/types/type-builders\"\nconst { emitter, store } = require(`../redux`)\nconst { getNodes, getNode, getNodesByType } = require(`../datastore`)\nconst { getNodeAndSavePathDependency, loadNodeContent } = require(`./nodes`)\nconst { getPublicPath } = require(`./get-public-path`)\nconst { requireGatsbyPlugin } = require(`./require-gatsby-plugin`)\nconst { getNonGatsbyCodeFrameFormatted } = require(`./stack-trace-utils`)\nconst { trackBuildError, decorateEvent } = require(`gatsby-telemetry`)\nimport errorParser from \"./api-runner-error-parser\"\n\n// Override createContentDigest to remove autogenerated data from nodes to\n// ensure consistent digests.\nfunction createContentDigest(node) {\n return _createContentDigest({\n ...node,\n internal: {\n ...node.internal,\n // Remove auto-generated fields that'd prevent\n // creating a consistent contentDigest.\n contentDigest: undefined,\n owner: undefined,\n fieldOwners: undefined,\n ignoreType: undefined,\n counter: undefined,\n },\n fields: undefined,\n })\n}\n\nif (!process.env.BLUEBIRD_DEBUG && !process.env.BLUEBIRD_LONG_STACK_TRACES) {\n // Unless specified - disable longStackTraces\n // as this have severe perf penalty ( http://bluebirdjs.com/docs/api/promise.longstacktraces.html )\n // This is mainly for `gatsby develop` due to NODE_ENV being set to development\n // which cause bluebird to enable longStackTraces\n // `gatsby build` (with NODE_ENV=production) already doesn't enable longStackTraces\n Promise.config({ longStackTraces: false })\n}\n\n// Bind action creators per plugin so we can auto-add\n// metadata to actions they create.\nconst boundPluginActionCreators = {}\nconst doubleBind = (boundActionCreators, api, plugin, actionOptions) => {\n const { traceId, deferNodeMutation } = actionOptions\n const defer = deferNodeMutation ? `defer-node-mutation` : ``\n const actionKey = plugin.name + api + traceId + defer\n if (boundPluginActionCreators[actionKey]) {\n return boundPluginActionCreators[actionKey]\n } else {\n const keys = Object.keys(boundActionCreators)\n const doubleBoundActionCreators = {}\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const boundActionCreator = boundActionCreators[key]\n if (typeof boundActionCreator === `function`) {\n doubleBoundActionCreators[key] = (...args) => {\n // Let action callers override who the plugin is. Shouldn't be\n // used that often.\n if (args.length === 1) {\n return boundActionCreator(args[0], plugin, actionOptions)\n } else if (args.length === 2) {\n return boundActionCreator(args[0], args[1], actionOptions)\n }\n return undefined\n }\n }\n }\n boundPluginActionCreators[actionKey] = doubleBoundActionCreators\n return doubleBoundActionCreators\n }\n}\n\nconst initAPICallTracing = parentSpan => {\n const startSpan = (spanName, spanArgs = {}) => {\n const defaultSpanArgs = { childOf: parentSpan }\n\n return tracer.startSpan(spanName, _.merge(defaultSpanArgs, spanArgs))\n }\n\n return {\n tracer,\n parentSpan,\n startSpan,\n }\n}\n\nconst deferredAction =\n type =>\n (...args) => {\n // Regular createNode returns a Promise, but when deferred we need\n // to wrap it in another which we resolve when it's actually called\n if (type === `createNode`) {\n return new Promise(resolve => {\n emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n resolve,\n })\n })\n }\n return emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n })\n }\n\nconst NODE_MUTATION_ACTIONS = [\n `createNode`,\n `deleteNode`,\n `touchNode`,\n `createParentChildLink`,\n `createNodeField`,\n]\n\nconst deferActions = actions => {\n const deferred = { ...actions }\n NODE_MUTATION_ACTIONS.forEach(action => {\n deferred[action] = deferredAction(action)\n })\n return deferred\n}\n\n/**\n * Create a local reporter\n * Used to override reporter methods with activity methods\n */\nfunction getLocalReporter({ activity, reporter }) {\n // If we have an activity, bind panicOnBuild to the activities method to\n // join them\n if (activity) {\n return { ...reporter, panicOnBuild: activity.panicOnBuild.bind(activity) }\n }\n\n return reporter\n}\n\nfunction getErrorMapWithPluginName(pluginName, errorMap) {\n const entries = Object.entries(errorMap)\n\n return entries.reduce((memo, [key, val]) => {\n memo[`${pluginName}_${key}`] = val\n\n return memo\n }, {})\n}\n\nfunction extendLocalReporterToCatchPluginErrors({\n reporter,\n pluginName,\n runningActivities,\n}) {\n let setErrorMap\n\n let error = reporter.error\n let panic = reporter.panic\n let panicOnBuild = reporter.panicOnBuild\n\n if (pluginName && reporter?.setErrorMap) {\n setErrorMap = errorMap =>\n reporter.setErrorMap(getErrorMapWithPluginName(pluginName, errorMap))\n\n error = (errorMeta, error) => {\n reporter.error(errorMeta, error, pluginName)\n }\n\n panic = (errorMeta, error) => {\n reporter.panic(errorMeta, error, pluginName)\n }\n\n panicOnBuild = (errorMeta, error) => {\n reporter.panicOnBuild(errorMeta, error, pluginName)\n }\n }\n\n return {\n ...reporter,\n setErrorMap,\n error,\n panic,\n panicOnBuild,\n activityTimer: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.activityTimer.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n\n createProgress: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.createProgress.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n const originalDone = activity.done\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n activity.done = () => {\n originalDone.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n }\n}\n\nconst getUninitializedCache = plugin => {\n const message =\n `Usage of \"cache\" instance in \"onPreInit\" API is not supported as ` +\n `this API runs before cache initialization` +\n (plugin && plugin !== `default-site-plugin` ? ` (called in ${plugin})` : ``)\n\n return {\n // GatsbyCache\n async get() {\n throw new Error(message)\n },\n async set() {\n throw new Error(message)\n },\n async del() {\n throw new Error(message)\n },\n }\n}\n\nconst availableActionsCache = new Map()\nlet publicPath\nconst runAPI = async (plugin, api, args, activity) => {\n const gatsbyNode = requireGatsbyPlugin(plugin, `gatsby-node`)\n\n if (gatsbyNode[api]) {\n const parentSpan = args && args.parentSpan\n const spanOptions = parentSpan ? { childOf: parentSpan } : {}\n let pluginSpan\n if (parentSpan) {\n pluginSpan = tracer.startSpan(`run-plugin`, spanOptions)\n\n pluginSpan.setTag(`api`, api)\n pluginSpan.setTag(`plugin`, plugin.name)\n }\n const {\n publicActions,\n restrictedActionsAvailableInAPI,\n } = require(`../redux/actions`)\n\n let availableActions\n if (availableActionsCache.has(api)) {\n availableActions = availableActionsCache.get(api)\n } else {\n availableActions = {\n ...publicActions,\n ...(restrictedActionsAvailableInAPI[api] || {}),\n }\n\n availableActionsCache.set(api, availableActions)\n }\n\n let boundActionCreators = bindActionCreators(\n availableActions,\n store.dispatch\n )\n\n if (args.deferNodeMutation) {\n boundActionCreators = deferActions(boundActionCreators)\n }\n\n const doubleBoundActionCreators = doubleBind(\n boundActionCreators,\n api,\n plugin,\n { ...args, parentSpan: pluginSpan, activity }\n )\n\n const { config, program, tick } = store.getState()\n\n const pathPrefix = (program.prefixPaths && config.pathPrefix) || ``\n\n if (typeof publicPath === `undefined`) {\n publicPath = getPublicPath({ ...config, ...program }, ``)\n }\n\n const namespacedCreateNodeId = id => createNodeId(id, plugin.name)\n\n const tracing = initAPICallTracing(pluginSpan)\n\n // See https://github.com/gatsbyjs/gatsby/issues/11369\n const cache =\n api === `onPreInit`\n ? getUninitializedCache(plugin.name)\n : getCache(plugin.name)\n\n // Ideally this would be more abstracted and applied to more situations, but right now\n // this can be potentially breaking so targeting `createPages` API and `createPage` action\n let actions = doubleBoundActionCreators\n let apiFinished = false\n if (api === `createPages`) {\n let alreadyDisplayed = false\n const createPageAction = actions.createPage\n // create new actions object with wrapped createPage action\n // doubleBoundActionCreators is memoized, so we can't just\n // reassign createPage field as this would cause this extra logic\n // to be used in subsequent APIs and we only want to target this `createPages` call.\n actions = {\n ...actions,\n createPage: (...args) => {\n createPageAction(...args)\n if (apiFinished && !alreadyDisplayed) {\n const warning = [\n reporter.stripIndent(`\n Action ${chalk.bold(\n `createPage`\n )} was called outside of its expected asynchronous lifecycle ${chalk.bold(\n `createPages`\n )} in ${chalk.bold(plugin.name)}.\n Ensure that you return a Promise from ${chalk.bold(\n `createPages`\n )} and are awaiting any asynchronous method invocations (like ${chalk.bold(\n `graphql`\n )} or http requests).\n For more info and debugging tips: see ${chalk.bold(\n `https://gatsby.dev/sync-actions`\n )}\n `),\n ]\n\n const possiblyCodeFrame = getNonGatsbyCodeFrameFormatted()\n if (possiblyCodeFrame) {\n warning.push(possiblyCodeFrame)\n }\n\n reporter.warn(warning.join(`\\n\\n`))\n alreadyDisplayed = true\n }\n },\n }\n }\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const runningActivities = new Set()\n\n const extendedLocalReporter = extendLocalReporterToCatchPluginErrors({\n reporter: localReporter,\n pluginName: plugin.name,\n runningActivities,\n })\n\n const endInProgressActivitiesCreatedByThisRun = () => {\n runningActivities.forEach(activity => activity.end())\n }\n\n const apiCallArgs = [\n {\n ...args,\n parentSpan: pluginSpan,\n basePath: pathPrefix,\n pathPrefix: publicPath,\n actions,\n loadNodeContent,\n store,\n emitter,\n getCache,\n tick,\n getNodes,\n getNode,\n getNodesByType,\n reporter: extendedLocalReporter,\n getNodeAndSavePathDependency,\n cache,\n createNodeId: namespacedCreateNodeId,\n createContentDigest,\n tracing,\n schema: {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n },\n },\n plugin.pluginOptions,\n ]\n\n // If the plugin is using a callback use that otherwise\n // expect a Promise to be returned.\n if (gatsbyNode[api].length === 3) {\n return Promise.fromCallback(callback => {\n const cb = (err, val) => {\n pluginSpan?.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n callback(err, val)\n }\n\n try {\n gatsbyNode[api](...apiCallArgs, cb)\n } catch (e) {\n trackBuildError(api, {\n error: e,\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n throw e\n }\n })\n } else {\n try {\n return await gatsbyNode[api](...apiCallArgs)\n } finally {\n pluginSpan?.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n }\n }\n }\n\n return null\n}\n\nconst apisRunningById = new Map()\nconst apisRunningByTraceId = new Map()\nlet waitingForCasacadeToFinish = []\n\nfunction apiRunnerNode(api, args = {}, { pluginSource, activity } = {}) {\n const plugins = store.getState().flattenedPlugins\n\n // Get the list of plugins that implement this API.\n // Also: Break infinite loops. Sometimes a plugin will implement an API and\n // call an action which will trigger the same API being called.\n // `onCreatePage` is the only example right now. In these cases, we should\n // avoid calling the originating plugin again.\n let implementingPlugins = plugins.filter(\n plugin => plugin.nodeAPIs.includes(api) && plugin.name !== pluginSource\n )\n\n if (api === `sourceNodes` && args.pluginName) {\n implementingPlugins = implementingPlugins.filter(\n plugin => plugin.name === args.pluginName\n )\n }\n\n // If there's no implementing plugins, return early.\n if (implementingPlugins.length === 0) {\n return null\n }\n\n return new Promise(resolve => {\n const { parentSpan, traceId, traceTags, waitForCascadingActions } = args\n const apiSpanArgs = parentSpan ? { childOf: parentSpan } : {}\n let apiSpan\n if (api !== `setFieldsOnGraphQLNodeType`) {\n apiSpan = tracer.startSpan(`run-api`, apiSpanArgs)\n\n apiSpan.setTag(`api`, api)\n _.forEach(traceTags, (value, key) => {\n apiSpan.setTag(key, value)\n })\n }\n\n const apiRunInstance = {\n api,\n args,\n pluginSource,\n resolve,\n span: apiSpan,\n startTime: new Date().toJSON(),\n traceId,\n }\n\n // Generate IDs for api runs. Most IDs we generate from the args\n // but some API calls can have very large argument objects so we\n // have special ways of generating IDs for those to avoid stringifying\n // large objects.\n let id\n if (api === `setFieldsOnGraphQLNodeType`) {\n id = `${api}${apiRunInstance.startTime}${args.type.name}${traceId}`\n } else if (api === `onCreateNode`) {\n id = `${api}${apiRunInstance.startTime}${args.node.internal.contentDigest}${traceId}`\n } else if (api === `preprocessSource`) {\n id = `${api}${apiRunInstance.startTime}${args.filename}${traceId}`\n } else if (api === `onCreatePage`) {\n id = `${api}${apiRunInstance.startTime}${args.page.path}${traceId}`\n } else {\n // When tracing is turned on, the `args` object will have a\n // `parentSpan` field that can be quite large. So we omit it\n // before calling stringify\n const argsJson = JSON.stringify(_.omit(args, `parentSpan`))\n id = `${api}|${apiRunInstance.startTime}|${apiRunInstance.traceId}|${argsJson}`\n }\n apiRunInstance.id = id\n\n if (waitForCascadingActions) {\n waitingForCasacadeToFinish.push(apiRunInstance)\n }\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_START`)\n }\n\n apisRunningById.set(apiRunInstance.id, apiRunInstance)\n if (apisRunningByTraceId.has(apiRunInstance.traceId)) {\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount + 1)\n } else {\n apisRunningByTraceId.set(apiRunInstance.traceId, 1)\n }\n\n let stopQueuedApiRuns = false\n let onAPIRunComplete = null\n if (api === `onCreatePage`) {\n const path = args.page.path\n const actionHandler = action => {\n if (action.payload.path === path) {\n stopQueuedApiRuns = true\n }\n }\n emitter.on(`DELETE_PAGE`, actionHandler)\n onAPIRunComplete = () => {\n emitter.off(`DELETE_PAGE`, actionHandler)\n }\n }\n\n let apiRunPromiseOptions = {}\n let runPromise\n if (\n api === `sourceNodes` &&\n process.env.GATSBY_EXPERIMENTAL_PARALLEL_SOURCING\n ) {\n runPromise = Promise.map\n apiRunPromiseOptions.concurrency = 20\n } else {\n runPromise = Promise.mapSeries\n apiRunPromiseOptions = undefined\n }\n\n runPromise(\n implementingPlugins,\n plugin => {\n if (stopQueuedApiRuns) {\n return null\n }\n\n const gatsbyNode = requireGatsbyPlugin(plugin, `gatsby-node`)\n const pluginName =\n plugin.name === `default-site-plugin` ? `gatsby-node.js` : plugin.name\n\n // TODO: rethink createNode API to handle this better\n if (\n api === `onCreateNode` &&\n gatsbyNode?.unstable_shouldOnCreateNode && // Don't bail if this api is not exported\n !gatsbyNode.unstable_shouldOnCreateNode(\n { node: args.node },\n plugin.pluginOptions\n )\n ) {\n // Do not try to schedule an async event for this node for this plugin\n return null\n }\n\n return new Promise(resolve => {\n resolve(\n runAPI(plugin, api, { ...args, parentSpan: apiSpan }, activity)\n )\n }).catch(err => {\n decorateEvent(`BUILD_PANIC`, {\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const file = stackTrace\n .parse(err)\n .find(file => /gatsby-node/.test(file.fileName))\n\n let codeFrame = ``\n const structuredError = errorParser({ err })\n\n if (file) {\n const { fileName, lineNumber: line, columnNumber: column } = file\n\n try {\n const code = fs.readFileSync(fileName, { encoding: `utf-8` })\n codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line,\n column,\n },\n },\n {\n highlightCode: true,\n }\n )\n } catch (_e) {\n // sometimes stack trace point to not existing file\n // particularly when file is transpiled and path actually changes\n // (like pointing to not existing `src` dir or original typescript file)\n }\n\n structuredError.location = {\n start: { line: line, column: column },\n }\n structuredError.filePath = fileName\n }\n\n structuredError.context = {\n ...structuredError.context,\n pluginName,\n api,\n codeFrame,\n }\n\n localReporter.panicOnBuild(structuredError)\n\n return null\n })\n },\n apiRunPromiseOptions\n ).then(results => {\n if (onAPIRunComplete) {\n onAPIRunComplete()\n }\n // Remove runner instance\n apisRunningById.delete(apiRunInstance.id)\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount - 1)\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_QUEUE_EMPTY`)\n }\n\n // Filter empty results\n apiRunInstance.results = results.filter(result => !_.isEmpty(result))\n\n // Filter out empty responses and return if the\n // api caller isn't waiting for cascading actions to finish.\n if (!waitForCascadingActions) {\n apiSpan?.finish()\n resolve(apiRunInstance.results)\n }\n\n // Check if any of our waiters are done.\n waitingForCasacadeToFinish = waitingForCasacadeToFinish.filter(\n instance => {\n // If none of its trace IDs are running, it's done.\n const apisByTraceIdCount = apisRunningByTraceId.get(instance.traceId)\n if (apisByTraceIdCount === 0) {\n instance.span?.finish()\n instance.resolve(instance.results)\n return false\n } else {\n return true\n }\n }\n )\n return\n })\n })\n}\n\nmodule.exports = apiRunnerNode\n"],"file":"api-runner-node.js"}
@@ -81,6 +81,40 @@ function deleteStaleNodes(state, nodes) {
81
81
 
82
82
  let initialSourcing = true;
83
83
  let sourcingCount = 0;
84
+ const changedNodes = {
85
+ deleted: new Map(),
86
+ created: new Map(),
87
+ updated: new Map()
88
+ };
89
+
90
+ _redux.emitter.on(`DELETE_NODE`, action => {
91
+ var _action$payload;
92
+
93
+ if ((_action$payload = action.payload) !== null && _action$payload !== void 0 && _action$payload.id) {
94
+ changedNodes.deleted.set(action.payload.id, {
95
+ node: action.payload
96
+ });
97
+ }
98
+ });
99
+
100
+ _redux.emitter.on(`CREATE_NODE`, action => {
101
+ var _action$oldNode;
102
+
103
+ // If this node was deleted before being recreated, remove it from the deleted node
104
+ // list
105
+ changedNodes.deleted.delete(action.payload.id);
106
+
107
+ if ((_action$oldNode = action.oldNode) !== null && _action$oldNode !== void 0 && _action$oldNode.id) {
108
+ changedNodes.updated.set(action.payload.id, {
109
+ oldNode: action.oldNode,
110
+ node: action.payload
111
+ });
112
+ } else {
113
+ changedNodes.created.set(action.payload.id, {
114
+ node: action.payload
115
+ });
116
+ }
117
+ });
84
118
 
85
119
  var _default = async ({
86
120
  webhookBody,
@@ -88,7 +122,11 @@ var _default = async ({
88
122
  parentSpan,
89
123
  deferNodeMutation = false
90
124
  }) => {
91
- console.time(`sourceNodes`);
125
+ console.time(`sourceNodes`); // Clear changedNodes maps
126
+
127
+ changedNodes.deleted.clear();
128
+ changedNodes.created.clear();
129
+ changedNodes.updated.clear();
92
130
  const traceId = initialSourcing ? `initial-sourceNodes` : `sourceNodes #${sourcingCount}`;
93
131
  await (0, _apiRunnerNode.default)(`sourceNodes`, {
94
132
  traceId,
@@ -106,6 +144,12 @@ var _default = async ({
106
144
  console.log({
107
145
  initialSourcing
108
146
  });
147
+ console.log(changedNodes);
148
+
149
+ _redux.store.dispatch({
150
+ type: `SET_CHANGED_NODES`,
151
+ payload: changedNodes
152
+ });
109
153
 
110
154
  if (initialSourcing) {
111
155
  console.time(`sourceNodes: delete stale nodes`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/source-nodes.ts"],"names":["deleteNode","actions","discoverPluginsWithoutNodes","storeState","nodes","nodeOwnerSet","Set","forEach","node","add","internal","owner","flattenedPlugins","filter","plugin","nodeAPIs","includes","has","name","map","warnForPluginsWithoutNodes","state","pluginsWithNoNodes","report","warn","getStaleNodes","rootNode","next","undefined","whileCount","parent","console","log","nodesTouched","id","deleteStaleNodes","staleNodes","length","store","dispatch","initialSourcing","sourcingCount","webhookBody","pluginName","parentSpan","deferNodeMutation","time","traceId","waitForCascadingActions","timeEnd","ready","getState"],"mappings":"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","sourcesContent":["import report from \"gatsby-cli/lib/reporter\"\nimport { Span } from \"opentracing\"\nimport apiRunner from \"./api-runner-node\"\nimport { store } from \"../redux\"\nimport { getDataStore, getNode, getNodes } from \"../datastore\"\nimport { actions } from \"../redux/actions\"\nimport { IGatsbyState } from \"../redux/types\"\nconst { deleteNode } = actions\nimport { Node } from \"../../index\"\n\n/**\n * Finds the name of all plugins which implement Gatsby APIs that\n * may create nodes, but which have not actually created any nodes.\n */\nfunction discoverPluginsWithoutNodes(\n storeState: IGatsbyState,\n nodes: Array<Node>\n): Array<string> {\n // Find out which plugins own already created nodes\n const nodeOwnerSet = new Set([`default-site-plugin`])\n nodes.forEach(node => nodeOwnerSet.add(node.internal.owner))\n\n return storeState.flattenedPlugins\n .filter(\n plugin =>\n // \"Can generate nodes\"\n plugin.nodeAPIs.includes(`sourceNodes`) &&\n // \"Has not generated nodes\"\n !nodeOwnerSet.has(plugin.name)\n )\n .map(plugin => plugin.name)\n}\n\n/**\n * Warn about plugins that should have created nodes but didn't.\n */\nfunction warnForPluginsWithoutNodes(\n state: IGatsbyState,\n nodes: Array<Node>\n): void {\n const pluginsWithNoNodes = discoverPluginsWithoutNodes(state, nodes)\n\n pluginsWithNoNodes.map(name =>\n report.warn(\n `The ${name} plugin has generated no Gatsby nodes. Do you need it?`\n )\n )\n}\n\n/**\n * Return the set of nodes for which its root node has not been touched\n */\nfunction getStaleNodes(state: IGatsbyState, nodes: Array<Node>): Array<Node> {\n return nodes.filter(node => {\n let rootNode = node\n let next: Node | undefined = undefined\n\n let whileCount = 0\n do {\n next = rootNode.parent ? getNode(rootNode.parent) : undefined\n if (next) {\n rootNode = next\n }\n } while (next && ++whileCount < 101)\n\n if (whileCount > 100) {\n console.log(\n `It looks like you have a node that's set its parent as itself`,\n rootNode\n )\n }\n\n return !state.nodesTouched.has(rootNode.id)\n })\n}\n\n/**\n * Find all stale nodes and delete them\n */\nfunction deleteStaleNodes(state: IGatsbyState, nodes: Array<Node>): void {\n const staleNodes = getStaleNodes(state, nodes)\n\n if (staleNodes.length > 0) {\n staleNodes.forEach(node => store.dispatch(deleteNode(node)))\n }\n}\n\nlet initialSourcing = true\nlet sourcingCount = 0\nexport default async ({\n webhookBody,\n pluginName,\n parentSpan,\n deferNodeMutation = false,\n}: {\n webhookBody: unknown\n pluginName?: string\n parentSpan?: Span\n deferNodeMutation?: boolean\n}): Promise<void> => {\n console.time(`sourceNodes`)\n const traceId = initialSourcing\n ? `initial-sourceNodes`\n : `sourceNodes #${sourcingCount}`\n\n await apiRunner(`sourceNodes`, {\n traceId,\n waitForCascadingActions: true,\n deferNodeMutation,\n parentSpan,\n webhookBody: webhookBody || {},\n pluginName,\n })\n console.timeEnd(`sourceNodes`)\n\n sourcingCount += 1\n\n console.time(`sourceNodes: await dataStore`)\n await getDataStore().ready()\n console.timeEnd(`sourceNodes: await dataStore`)\n console.log({ initialSourcing })\n\n if (initialSourcing) {\n console.time(`sourceNodes: delete stale nodes`)\n const state = store.getState()\n const nodes = getNodes()\n\n warnForPluginsWithoutNodes(state, nodes)\n\n deleteStaleNodes(state, nodes)\n initialSourcing = false\n console.timeEnd(`sourceNodes: delete stale nodes`)\n } else {\n return\n }\n}\n"],"file":"source-nodes.js"}
1
+ {"version":3,"sources":["../../src/utils/source-nodes.ts"],"names":["deleteNode","actions","discoverPluginsWithoutNodes","storeState","nodes","nodeOwnerSet","Set","forEach","node","add","internal","owner","flattenedPlugins","filter","plugin","nodeAPIs","includes","has","name","map","warnForPluginsWithoutNodes","state","pluginsWithNoNodes","report","warn","getStaleNodes","rootNode","next","undefined","whileCount","parent","console","log","nodesTouched","id","deleteStaleNodes","staleNodes","length","store","dispatch","initialSourcing","sourcingCount","changedNodes","deleted","Map","created","updated","emitter","on","action","payload","set","delete","oldNode","webhookBody","pluginName","parentSpan","deferNodeMutation","time","clear","traceId","waitForCascadingActions","timeEnd","ready","type","getState"],"mappings":"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","sourcesContent":["import report from \"gatsby-cli/lib/reporter\"\nimport { Span } from \"opentracing\"\nimport apiRunner from \"./api-runner-node\"\nimport { store, emitter } from \"../redux\"\nimport { getDataStore, getNode, getNodes } from \"../datastore\"\nimport { actions } from \"../redux/actions\"\nimport { IGatsbyState } from \"../redux/types\"\nconst { deleteNode } = actions\nimport { Node } from \"../../index\"\n\n/**\n * Finds the name of all plugins which implement Gatsby APIs that\n * may create nodes, but which have not actually created any nodes.\n */\nfunction discoverPluginsWithoutNodes(\n storeState: IGatsbyState,\n nodes: Array<Node>\n): Array<string> {\n // Find out which plugins own already created nodes\n const nodeOwnerSet = new Set([`default-site-plugin`])\n nodes.forEach(node => nodeOwnerSet.add(node.internal.owner))\n\n return storeState.flattenedPlugins\n .filter(\n plugin =>\n // \"Can generate nodes\"\n plugin.nodeAPIs.includes(`sourceNodes`) &&\n // \"Has not generated nodes\"\n !nodeOwnerSet.has(plugin.name)\n )\n .map(plugin => plugin.name)\n}\n\n/**\n * Warn about plugins that should have created nodes but didn't.\n */\nfunction warnForPluginsWithoutNodes(\n state: IGatsbyState,\n nodes: Array<Node>\n): void {\n const pluginsWithNoNodes = discoverPluginsWithoutNodes(state, nodes)\n\n pluginsWithNoNodes.map(name =>\n report.warn(\n `The ${name} plugin has generated no Gatsby nodes. Do you need it?`\n )\n )\n}\n\n/**\n * Return the set of nodes for which its root node has not been touched\n */\nfunction getStaleNodes(state: IGatsbyState, nodes: Array<Node>): Array<Node> {\n return nodes.filter(node => {\n let rootNode = node\n let next: Node | undefined = undefined\n\n let whileCount = 0\n do {\n next = rootNode.parent ? getNode(rootNode.parent) : undefined\n if (next) {\n rootNode = next\n }\n } while (next && ++whileCount < 101)\n\n if (whileCount > 100) {\n console.log(\n `It looks like you have a node that's set its parent as itself`,\n rootNode\n )\n }\n\n return !state.nodesTouched.has(rootNode.id)\n })\n}\n\n/**\n * Find all stale nodes and delete them\n */\nfunction deleteStaleNodes(state: IGatsbyState, nodes: Array<Node>): void {\n const staleNodes = getStaleNodes(state, nodes)\n\n if (staleNodes.length > 0) {\n staleNodes.forEach(node => store.dispatch(deleteNode(node)))\n }\n}\n\nlet initialSourcing = true\nlet sourcingCount = 0\nconst changedNodes = {\n deleted: new Map(),\n created: new Map(),\n updated: new Map(),\n}\n\nemitter.on(`DELETE_NODE`, action => {\n if (action.payload?.id) {\n changedNodes.deleted.set(action.payload.id, { node: action.payload })\n }\n})\n\nemitter.on(`CREATE_NODE`, action => {\n // If this node was deleted before being recreated, remove it from the deleted node\n // list\n changedNodes.deleted.delete(action.payload.id)\n\n if (action.oldNode?.id) {\n changedNodes.updated.set(action.payload.id, {\n oldNode: action.oldNode,\n node: action.payload,\n })\n } else {\n changedNodes.created.set(action.payload.id, { node: action.payload })\n }\n})\n\nexport default async ({\n webhookBody,\n pluginName,\n parentSpan,\n deferNodeMutation = false,\n}: {\n webhookBody: unknown\n pluginName?: string\n parentSpan?: Span\n deferNodeMutation?: boolean\n}): Promise<void> => {\n console.time(`sourceNodes`)\n // Clear changedNodes maps\n changedNodes.deleted.clear()\n changedNodes.created.clear()\n changedNodes.updated.clear()\n\n const traceId = initialSourcing\n ? `initial-sourceNodes`\n : `sourceNodes #${sourcingCount}`\n\n await apiRunner(`sourceNodes`, {\n traceId,\n waitForCascadingActions: true,\n deferNodeMutation,\n parentSpan,\n webhookBody: webhookBody || {},\n pluginName,\n })\n console.timeEnd(`sourceNodes`)\n\n sourcingCount += 1\n\n console.time(`sourceNodes: await dataStore`)\n await getDataStore().ready()\n console.timeEnd(`sourceNodes: await dataStore`)\n console.log({ initialSourcing })\n\n console.log(changedNodes)\n store.dispatch({\n type: `SET_CHANGED_NODES`,\n payload: changedNodes,\n })\n\n if (initialSourcing) {\n console.time(`sourceNodes: delete stale nodes`)\n const state = store.getState()\n const nodes = getNodes()\n\n warnForPluginsWithoutNodes(state, nodes)\n\n deleteStaleNodes(state, nodes)\n initialSourcing = false\n console.timeEnd(`sourceNodes: delete stale nodes`)\n } else {\n return\n }\n}\n"],"file":"source-nodes.js"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gatsby",
3
3
  "description": "Blazing fast modern site generator for React",
4
- "version": "3.14.0-drupal-next.74+e5dac7b32e",
4
+ "version": "3.14.0-drupal-next.75+b3eb68989b",
5
5
  "author": "Kyle Mathews <mathews.kyle@gmail.com>",
6
6
  "bin": {
7
7
  "gatsby": "./cli.js"
@@ -83,7 +83,7 @@
83
83
  "gatsby-graphiql-explorer": "1.14.0-next.2",
84
84
  "gatsby-legacy-polyfills": "1.14.0-next.2",
85
85
  "gatsby-link": "3.14.0-next.2",
86
- "gatsby-plugin-page-creator": "3.14.0-next.3",
86
+ "gatsby-plugin-page-creator": "3.14.0-drupal-next.79+b3eb68989b",
87
87
  "gatsby-plugin-typescript": "3.14.0-next.4",
88
88
  "gatsby-plugin-utils": "1.14.0-next.2",
89
89
  "gatsby-react-router-scroll": "4.14.0-next.2",
@@ -260,5 +260,5 @@
260
260
  "yargs": {
261
261
  "boolean-negation": false
262
262
  },
263
- "gitHead": "e5dac7b32eaa6d92804e2aacf915bf64db570569"
263
+ "gitHead": "b3eb68989b83f6bccb53017a76e13b41584393f8"
264
264
  }