From d02a334dbc8c3ca038d3cb917dbb157373292d20 Mon Sep 17 00:00:00 2001 From: Daishi Kato Date: Wed, 22 Jan 2025 20:11:43 +0900 Subject: [PATCH] fix: build data (critical issue with non-nodejs envs) (#1179) This is to fix a critical bug: https://github.com/dai-shi/waku/pull/1066/files#r1924645235 The bug exists between v0.21.9 and v0.21.16. Related with #1178. This should fix the issue, but no way for automate tests for now. (I'll revisit buildData entirely in the next PR.) --------- Co-authored-by: Tyler <26290074+thegitduck@users.noreply.github.com> --- packages/waku/src/lib/middleware/handler.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/waku/src/lib/middleware/handler.ts b/packages/waku/src/lib/middleware/handler.ts index deae36b25..b5e1cce76 100644 --- a/packages/waku/src/lib/middleware/handler.ts +++ b/packages/waku/src/lib/middleware/handler.ts @@ -2,7 +2,7 @@ import type { ReactNode } from 'react'; import { resolveConfig, extractPureConfig } from '../config.js'; import type { PureConfig } from '../config.js'; -import { setAllEnvInternal } from '../../server.js'; +import { setAllEnvInternal, unstable_getPlatformObject } from '../../server.js'; import type { HandleRequest, HandlerRes } from '../types.js'; import type { Middleware, HandlerContext } from './types.js'; import { renderRsc, decodeBody, decodePostAction } from '../renderers/rsc.js'; @@ -75,9 +75,12 @@ export const handler: Middleware = (options) => { : ('Error: loadEntries are not available' as never); const configPromise = options.cmd === 'start' - ? entriesPromise.then((entries) => - entries.loadConfig().then((config) => resolveConfig(config)), - ) + ? entriesPromise.then(async (entries) => { + if (entries.buildData) { + unstable_getPlatformObject().buildData = entries.buildData; + } + return resolveConfig(await entries.loadConfig()); + }) : resolveConfig(options.config); return async (ctx, next) => {