import path from 'path' const mockModulePath = path.resolve(__dirname, './mocks/emptyObject.js'); import { payloadCloud } from '@payloadcms/plugin-cloud' import { mongooseAdapter } from '@payloadcms/db-mongodb' import { webpackBundler } from '@payloadcms/bundler-webpack' import { slateEditor } from '@payloadcms/richtext-slate' import { buildConfig } from 'payload/config' import { cloudStorage } from '@payloadcms/plugin-cloud-storage'; import { s3Adapter } from '@payloadcms/plugin-cloud-storage/s3'; import Users from './collections/Users' import FormSubmissions from './collections/FormSubmissions' import Study from './collections/Study' import Media from './collections/Media'; const adapter = s3Adapter({ config: { endpoint: process.env.S3_ENDPOINT, // Configure for your provider credentials: { accessKeyId: process.env.S3_ACCESS_KEY_ID, secretAccessKey: process.env.S3_SECRET_ACCESS_KEY, }, region: process.env.S3_REGION, }, bucket: process.env.S3_BUCKET, }) export default buildConfig({ // serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL, cors: [ process.env.PAYLOAD_PUBLIC_SERVER_URL, 'http://localhost:9001' ].filter(Boolean), csrf: [ process.env.PAYLOAD_PUBLIC_SERVER_URL, 'http://localhost:9001' ].filter(Boolean), admin: { user: Users.slug, bundler: webpackBundler(), webpack: (config) => ({ ...config, resolve: { ...config.resolve, alias: { ...config.resolve?.alias, // stripe: mockModulePath, // express: mockModulePath, fs: mockModulePath, // zlib: mockModulePath, // stream: mockModulePath, }, }, }), }, editor: slateEditor({}), collections: [ Users, FormSubmissions, Study, Media ], typescript: { outputFile: path.resolve(__dirname, 'payload-types.ts'), }, graphQL: { schemaOutputFile: path.resolve(__dirname, 'generated-schema.graphql'), }, plugins: [ // payloadCloud(), cloudStorage({ collections: { 'media': { adapter }, }, }), ], db: mongooseAdapter({ url: process.env.DATABASE_URI, }), })