import path from 'path' import { en } from 'payload/i18n/en' import { AlignFeature, BlockquoteFeature, BlocksFeature, BoldFeature, ChecklistFeature, HeadingFeature, IndentFeature, InlineCodeFeature, ItalicFeature, lexicalEditor, LinkFeature, OrderedListFeature, ParagraphFeature, RelationshipFeature, UnorderedListFeature, UploadFeature, } from '@payloadcms/richtext-lexical' import { mongooseAdapter } from '@payloadcms/db-mongodb' import { buildConfig } from 'payload/config' import sharp from 'sharp' import { fileURLToPath } from 'url' import Media from '@payload/collections/Media' import Authors from '@payload/collections/Authors' import Posts from '@payload/collections/Posts' import Users from '@payload/collections/Users' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) export default buildConfig({ admin: { autoLogin: { email: 'dev@payloadcms.com', password: 'test', prefillOnly: true, }, }, editor: lexicalEditor(), collections: [ Users, Posts, Authors, Media, { slug: 'pages', admin: { useAsTitle: 'title', }, fields: [ { name: 'title', type: 'text', }, { name: 'content', type: 'richText', }, ], }, ], secret: process.env.PAYLOAD_SECRET || '', typescript: { outputFile: path.resolve(dirname, 'types/payload-types.ts'), }, db: mongooseAdapter({ url: process.env.MONGODB_URI || '', }), async onInit(payload) { const existingUsers = await payload.find({ collection: 'users', limit: 1, }) if (existingUsers.docs.length === 0) { await payload.create({ collection: 'users', data: { email: 'dev@payloadcms.com', password: 'test', }, }) } }, // Sharp is now an optional dependency - // if you want to resize images, crop, set focal point, etc. // make sure to install it and pass it to the config. // This is temporary - we may make an adapter pattern // for this before reaching 3.0 stable sharp, })