Files
bmp-website-2026/src/scripts/preload-press-index-page-cms.ts
2026-07-31 14:25:11 +02:00

71 lines
2.2 KiB
TypeScript

import 'dotenv/config'
import config from '@payload-config'
import { getPayload } from 'payload'
import { mediaByFilename } from './mediaByFilename'
import { pressIndexContent } from '@/spa/pressIndexContent'
async function main() {
const payload = await getPayload({ config })
const pageResult = await payload.find({
collection: 'pages',
limit: 1,
pagination: false,
draft: true,
overrideAccess: true,
where: {
or: [{ spaPath: { equals: '/presse' } }, { slug: { equals: 'presse' } }, { slug: { equals: 'press' } }],
},
})
const page = pageResult.docs[0]
if (!page) throw new Error('Press index page not found. Expected spaPath=/presse or slug=presse/press.')
const [heroImage, eventFallbackImage, newsFallbackImage, kitFile] = await Promise.all([
mediaByFilename(payload, pressIndexContent.hero.imageFilename),
mediaByFilename(payload, pressIndexContent.events.collectionFallbackImageFilename),
mediaByFilename(payload, pressIndexContent.news.collectionFallbackImageFilename),
mediaByFilename(payload, pressIndexContent.downloads.kitDownloadName),
])
const { imageFilename: _heroFilename, ...heroContent } = pressIndexContent.hero
const { collectionFallbackImageFilename: _eventFallbackFilename, ...eventsContent } = pressIndexContent.events
const { collectionFallbackImageFilename: _newsFallbackFilename, ...newsContent } = pressIndexContent.news
await payload.update({
collection: 'pages',
id: page.id,
overrideAccess: true,
context: { disableRevalidate: true },
data: {
pressIndex: {
...pressIndexContent,
hero: {
...heroContent,
image: heroImage,
},
events: {
...eventsContent,
collectionFallbackImage: eventFallbackImage,
},
news: {
...newsContent,
collectionFallbackImage: newsFallbackImage,
},
downloads: {
...pressIndexContent.downloads,
kitFile,
},
},
} as never,
})
payload.logger.info(`Preloaded Press index CMS fields for page ${page.id}`)
process.exit(0)
}
main().catch((error) => {
console.error(error)
process.exit(1)
})