Skip to content

Commit

Permalink
fix: inspect configValuesLoaded===undefined bug (#2092)
Browse files Browse the repository at this point in the history
  • Loading branch information
brillout committed Jan 28, 2025
1 parent acd1a1b commit 47f28a0
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,13 @@ function getCodePageConfigsSerialized(

pageConfigs.forEach((pageConfig) => {
const { pageId, routeFilesystem, isErrorPage } = pageConfig
const virtualFileIdPageConfigValuesAll = getVirtualFileIdPageConfigValuesAll(pageId, isForClientSide)
lines.push(` {`)
lines.push(` pageId: ${JSON.stringify(pageId)},`)
lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`)
lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`)
lines.push(` loadConfigValuesAll: () => import(${JSON.stringify(virtualFileIdPageConfigValuesAll)}),`)
const virtualFileId = JSON.stringify(getVirtualFileIdPageConfigValuesAll(pageId, isForClientSide))
const load = `() => ({ moduleId: ${virtualFileId}, moduleExports: import(${virtualFileId}) })`
lines.push(` loadConfigValuesAll: ${load},`)
lines.push(` configValuesSerialized: {`)
lines.push(
...serializeConfigValues(
Expand Down
9 changes: 6 additions & 3 deletions vike/shared/page-configs/PageConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,12 @@ type PageConfigBase = {
type PageConfigRuntime = PageConfigBase & {
configValues: ConfigValues
/** Load config values that are lazily loaded such as config.Page */
loadConfigValuesAll: () => Promise<{
configValuesSerialized: Record<string, ConfigValueSerialized>
}>
loadConfigValuesAll: () => {
moduleId: string
moduleExports: Promise<{
configValuesSerialized: Record<string, ConfigValueSerialized>
}>
}
}
/** Same as PageConfigRuntime but also contains all lazily loaded config values such as config.Page */
type PageConfigRuntimeLoaded = PageConfigRuntime & {
Expand Down
7 changes: 5 additions & 2 deletions vike/shared/page-configs/loadConfigValues.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export { loadConfigValues }

import { objectAssign } from '../utils.js'
import { assert, objectAssign } from '../utils.js'
import type { PageConfigRuntime, PageConfigRuntimeLoaded } from './PageConfig.js'
import { parseConfigValuesSerialized } from './serialize/parsePageConfigs.js'

Expand All @@ -12,7 +12,10 @@ async function loadConfigValues(pageConfig: PageConfigRuntime, isDev: boolean):
) {
return pageConfig as PageConfigRuntimeLoaded
}
const configValuesLoaded = await pageConfig.loadConfigValuesAll()
const { moduleId, moduleExports } = pageConfig.loadConfigValuesAll()
const configValuesLoaded = await moduleExports
// `configValuesLoaded` is sometimes `undefined` https://github.com/vikejs/vike/discussions/2092
assert(configValuesLoaded, { moduleId })
const configValues = parseConfigValuesSerialized(configValuesLoaded.configValuesSerialized)
Object.assign(pageConfig.configValues, configValues)
objectAssign(pageConfig, { isAllLoaded: true as const })
Expand Down

0 comments on commit 47f28a0

Please sign in to comment.