Skip to content

Commit

Permalink
fix: consider + files living as root as global + files
Browse files Browse the repository at this point in the history
  • Loading branch information
brillout committed Feb 11, 2025
1 parent 6247354 commit ed23891
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 13 deletions.
19 changes: 11 additions & 8 deletions vike/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import {
getFilesystemRouteDefinedBy,
isInherited,
sortAfterInheritanceOrder,
isGlobalLocation,
applyFilesystemRoutingRootEffect
} from './getVikeConfig/filesystemRouting.js'
import type { EsbuildCache } from './getVikeConfig/transpileAndExecuteFile.js'
Expand Down Expand Up @@ -360,14 +359,10 @@ function assertGlobalConfigLocation(
plusFilesAll: PlusFilesByLocationId,
configDefinitionsGlobal: ConfigDefinitions
) {
const locationIdsAll = objectKeys(plusFilesAll)

// Determine existing global +config.js files
const configFilePathsGlobal: string[] = []
const plusFilesGlobal: PlusFile[] = Object.values(
objectFromEntries(
objectEntries(plusFilesAll).filter(([locationId]) => isGlobalLocation(locationId, locationIdsAll))
)
objectFromEntries(objectEntries(plusFilesAll).filter(([locationId]) => isGlobalLocation(locationId, plusFilesAll)))
).flat()
plusFilesGlobal
.filter((i) => i.isConfigFile)
Expand All @@ -389,7 +384,7 @@ function assertGlobalConfigLocation(
if (!filePathAbsoluteUserRootDir) return
assert(!plusFile.isExtensionConfig)

if (!isGlobalLocation(source.locationId, locationIdsAll)) {
if (!isGlobalLocation(source.locationId, plusFilesAll)) {
const configDef = configDefinitionsGlobal[configName]
assert(configDef)
const isConditionallyGlobal = isCallable(configDef.global)
Expand Down Expand Up @@ -510,7 +505,7 @@ function sortForGlobal(plusFilesAll: PlusFilesByLocationId): PlusFilesByLocation
const plusFilesAllSorted = Object.fromEntries(
objectEntries(plusFilesAll)
.sort(lowerFirst(([locationId]) => locationId.split('/').length))
.sort(makeFirst(([locationId]) => isGlobalLocation(locationId, locationIdsAll)))
.sort(makeFirst(([locationId]) => isGlobalLocation(locationId, plusFilesAll)))
)
return plusFilesAllSorted
}
Expand Down Expand Up @@ -1211,3 +1206,11 @@ function resolveConfigEnv(configEnv: ConfigEnvInternal, filePath: FilePath) {

return configEnvResolved
}

/** Whether configs defined in `locationId` apply to every page */
function isGlobalLocation(locationId: LocationId, plusFilesAll: PlusFilesByLocationId): boolean {
const locationIdsPage = objectEntries(plusFilesAll)
.filter(([_locationId, plusFiles]) => isDefiningPage(plusFiles))
.map(([locationId]) => locationId)
return locationIdsPage.every((locId) => isInherited(locationId, locId))
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ export { getFilesystemRouteDefinedBy }
export { isInherited }
export { getLocationId }
export { sortAfterInheritanceOrder }
export { isGlobalLocation }
export { applyFilesystemRoutingRootEffect }
export type { LocationId }

Expand Down Expand Up @@ -72,10 +71,6 @@ function getLogicalPath(locationId: LocationId, ignoredDirs: string[], removePar
return logicalPath
}

/** Whether configs defined in `locationId` apply in every `locationIds` */
function isGlobalLocation(locationId: LocationId, locationIds: LocationId[]): boolean {
return locationIds.every((locId) => isInherited(locationId, locId) || locationIsRendererDir(locId))
}
function sortAfterInheritanceOrder(
locationId1: LocationId,
locationId2: LocationId,
Expand Down

0 comments on commit ed23891

Please sign in to comment.