import { buildConfig } from "payload"; import { postgresAdapter } from "@payloadcms/db-postgres"; import { lexicalEditor } from "@payloadcms/richtext-lexical"; import { nodemailerAdapter } from "@payloadcms/email-nodemailer"; import path from "path"; import { fileURLToPath } from "url"; import sharp from "sharp"; import { Users } from "./src/payload/collections/Users"; import { Media } from "./src/payload/collections/Media"; import { Posts } from "./src/payload/collections/Posts"; const filename = fileURLToPath(import.meta.url); const dirname = path.dirname(filename); export default buildConfig({ admin: { user: Users.slug, importMap: { baseDir: path.resolve(dirname), }, }, collections: [Users, Media, Posts], ...(process.env.MAIL_HOST ? { email: nodemailerAdapter({ defaultFromAddress: process.env.MAIL_FROM || "info@mintel.me", defaultFromName: "Mintel.me", transportOptions: { host: process.env.MAIL_HOST, port: parseInt(process.env.MAIL_PORT || "587"), auth: { user: process.env.MAIL_USERNAME, pass: process.env.MAIL_PASSWORD, }, }, }), } : {}), editor: lexicalEditor(), secret: process.env.PAYLOAD_SECRET || "fallback-secret-for-dev", typescript: { outputFile: path.resolve(dirname, "payload-types.ts"), }, db: postgresAdapter({ pool: { connectionString: process.env.DATABASE_URI || process.env.POSTGRES_URI || "", }, }), sharp, plugins: [], });