import { gcsStorage } from '@payloadcms/storage-gcs' import dotenv from 'dotenv' import { fileURLToPath } from 'node:url' import path from 'path' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { devUser } from '../credentials.js' import { Media } from './collections/Media.js' import { MediaWithPrefix } from './collections/MediaWithPrefix.js' import { Users } from './collections/Users.js' import { mediaSlug, mediaWithPrefixSlug, prefix } from './shared.js' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) let uploadOptions // Load config to work with emulated services dotenv.config({ path: path.resolve(dirname, '../plugin-cloud-storage/.env.emulated'), }) export default buildConfigWithDefaults({ collections: [Media, MediaWithPrefix, Users], onInit: async (payload) => { await payload.create({ collection: 'users', data: { email: devUser.email, password: devUser.password, }, }) }, plugins: [ gcsStorage({ collections: { [mediaSlug]: true, [mediaWithPrefixSlug]: { prefix, }, }, bucket: process.env.GCS_BUCKET, options: { apiEndpoint: process.env.GCS_ENDPOINT, projectId: process.env.GCS_PROJECT_ID, }, }), ], upload: uploadOptions, })