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) })