From 3b6e33e16fd0650fbc690cc685a8a1d7e48ce4b3 Mon Sep 17 00:00:00 2001 From: Tyler Barnes Date: Mon, 16 Jan 2023 11:55:47 -0800 Subject: [PATCH 1/3] add initial webhook body env var to bootstrap context --- packages/gatsby/src/services/initialize.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/gatsby/src/services/initialize.ts b/packages/gatsby/src/services/initialize.ts index d1ee5d625b3b2..aed10c70cc792 100644 --- a/packages/gatsby/src/services/initialize.ts +++ b/packages/gatsby/src/services/initialize.ts @@ -21,6 +21,7 @@ import { IBuildContext } from "./types" import { loadConfig } from "../bootstrap/load-config" import { loadPlugins } from "../bootstrap/load-plugins" import type { InternalJob } from "../utils/jobs/types" +import type { IDataLayerContext } from "./../state-machines/data-layer/types" import { enableNodeMutationsDetection } from "../utils/detect-node-mutations" import { compileGatsbyFiles } from "../utils/parcel/compile-gatsby-files" import { resolveModule } from "../utils/module-resolver" @@ -71,12 +72,15 @@ process.on(`unhandledRejection`, (reason: unknown) => { // Otherwise leave commented out. // require(`../bootstrap/log-line-function`) +type WebhookBody = IDataLayerContext["webhookBody"] + export async function initialize({ program: args, parentSpan, }: IBuildContext): Promise<{ store: Store workerPool: WorkerPool.GatsbyWorkerPool + webhookBody?: WebhookBody }> { if (process.env.GATSBY_DISABLE_CACHE_PERSISTENCE) { reporter.info( @@ -651,8 +655,14 @@ export async function initialize({ } } + const initialWebhookBody: WebhookBody = process.env + .GATSBY_INITIAL_WEBHOOK_BODY + ? JSON.parse(process.env.GATSBY_INITIAL_WEBHOOK_BODY) + : undefined + return { store, workerPool, + webhookBody: initialWebhookBody, } } From 9459d4e803509c1c5aa533a3d5f0e763f7a5b1c5 Mon Sep 17 00:00:00 2001 From: Tyler Barnes Date: Mon, 16 Jan 2023 14:44:00 -0800 Subject: [PATCH 2/3] catch errors --- packages/gatsby/src/services/initialize.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/gatsby/src/services/initialize.ts b/packages/gatsby/src/services/initialize.ts index aed10c70cc792..3e2e07bb82caf 100644 --- a/packages/gatsby/src/services/initialize.ts +++ b/packages/gatsby/src/services/initialize.ts @@ -655,10 +655,15 @@ export async function initialize({ } } - const initialWebhookBody: WebhookBody = process.env - .GATSBY_INITIAL_WEBHOOK_BODY - ? JSON.parse(process.env.GATSBY_INITIAL_WEBHOOK_BODY) - : undefined + let initialWebhookBody: WebhookBody = undefined + + if (process.env.GATSBY_INITIAL_WEBHOOK_BODY) { + try { + initialWebhookBody = JSON.parse(process.env.GATSBY_INITIAL_WEBHOOK_BODY) + } catch (e) { + reporter.error(`Failed to parse GATSBY_INITIAL_WEBHOOK_BODY as JSON`) + } + } return { store, From 9a76e6d6d94c89b737d6c77713f2a68dd77afec4 Mon Sep 17 00:00:00 2001 From: Tyler Barnes Date: Mon, 16 Jan 2023 14:55:16 -0800 Subject: [PATCH 3/3] add e message --- packages/gatsby/src/services/initialize.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/gatsby/src/services/initialize.ts b/packages/gatsby/src/services/initialize.ts index 3e2e07bb82caf..edbb546936837 100644 --- a/packages/gatsby/src/services/initialize.ts +++ b/packages/gatsby/src/services/initialize.ts @@ -661,7 +661,9 @@ export async function initialize({ try { initialWebhookBody = JSON.parse(process.env.GATSBY_INITIAL_WEBHOOK_BODY) } catch (e) { - reporter.error(`Failed to parse GATSBY_INITIAL_WEBHOOK_BODY as JSON`) + reporter.error( + `Failed to parse GATSBY_INITIAL_WEBHOOK_BODY as JSON:\n"${e.message}"` + ) } }