71 lines
2.2 KiB
TypeScript
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)
|
|
})
|