config
π§© Syntax:
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,
}),
})