120 lines
3.2 KiB
TypeScript
120 lines
3.2 KiB
TypeScript
// storage-adapter-import-placeholder
|
|
import {
|
|
lexicalEditor,
|
|
BoldFeature,
|
|
InlineToolbarFeature,
|
|
ItalicFeature,
|
|
UnderlineFeature,
|
|
ParagraphFeature,
|
|
HeadingFeature,
|
|
AlignFeature,
|
|
UnorderedListFeature,
|
|
LinkFeature,
|
|
HTMLConverterFeature,
|
|
} from '@payloadcms/richtext-lexical'
|
|
import path from 'path'
|
|
import { buildConfig } from 'payload'
|
|
import { fileURLToPath } from 'url'
|
|
import sharp from 'sharp'
|
|
|
|
import { Users } from './collections/Users'
|
|
import { Media } from './collections/Media'
|
|
import { Worship } from '@/collections/Worship'
|
|
import { Churches } from '@/collections/Churches'
|
|
import { de } from '@payloadcms/translations/languages/de'
|
|
import { Testimony } from '@/collections/Testimony'
|
|
import { Parish } from '@/collections/Parish'
|
|
import { Employees } from '@/collections/Employees'
|
|
import { Groups } from '@/collections/Groups'
|
|
import { Events } from '@/collections/Events'
|
|
import { Announcements } from '@/collections/Announcements'
|
|
import { Blog } from '@/collections/Blog'
|
|
import { Highlight } from '@/collections/Highlight'
|
|
import { Pages } from '@/collections/Pages'
|
|
import { Documents } from '@/collections/Documents'
|
|
import { Locations } from '@/collections/Locations'
|
|
import { ContactPerson } from '@/collections/ContactPerson'
|
|
import { postgresAdapter } from '@payloadcms/db-postgres'
|
|
import { gcsStorage } from '@payloadcms/storage-gcs'
|
|
import { PopesPrayerIntentions } from '@/collections/PopesPrayerIntentions'
|
|
import { LiturgicalCalendar } from '@/collections/LiturgicalCalendar'
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
export default buildConfig({
|
|
admin: {
|
|
user: Users.slug,
|
|
},
|
|
collections: [
|
|
Parish,
|
|
Churches,
|
|
Worship,
|
|
PopesPrayerIntentions,
|
|
Announcements,
|
|
LiturgicalCalendar,
|
|
Blog,
|
|
Highlight,
|
|
Events,
|
|
ContactPerson,
|
|
Locations,
|
|
Groups,
|
|
Employees,
|
|
Testimony,
|
|
Pages,
|
|
Users,
|
|
Documents,
|
|
Media,
|
|
],
|
|
editor: lexicalEditor(
|
|
{
|
|
features: () => [
|
|
BoldFeature(),
|
|
ItalicFeature(),
|
|
UnderlineFeature(),
|
|
HeadingFeature({ enabledHeadingSizes: ["h3","h4","h5"]}),
|
|
AlignFeature(),
|
|
UnorderedListFeature(),
|
|
LinkFeature(),
|
|
ParagraphFeature(),
|
|
InlineToolbarFeature(),
|
|
HTMLConverterFeature()
|
|
]
|
|
}
|
|
),
|
|
secret: process.env.PAYLOAD_SECRET || '',
|
|
typescript: {
|
|
outputFile: path.resolve(dirname, 'payload-types.ts'),
|
|
},
|
|
i18n: {
|
|
supportedLanguages: { de },
|
|
},
|
|
db: postgresAdapter({
|
|
idType: "uuid",
|
|
push: true,
|
|
pool: {
|
|
connectionString: process.env.DATABASE_URI,
|
|
}
|
|
}),
|
|
sharp,
|
|
plugins: [
|
|
gcsStorage({
|
|
|
|
collections: {
|
|
media: {
|
|
disablePayloadAccessControl: true,
|
|
prefix: 'media/',
|
|
generateFileURL: args => `https://storage.googleapis.com/${process.env.GOOGLE_BUCKET}/media/${args.filename}`
|
|
},
|
|
documents: {
|
|
disablePayloadAccessControl: true,
|
|
prefix: 'documents/',
|
|
generateFileURL: args => `https://storage.googleapis.com/${process.env.GOOGLE_BUCKET}/documents/${args.filename}`
|
|
},
|
|
},
|
|
bucket: process.env.GOOGLE_BUCKET || "",
|
|
options: {},
|
|
acl: undefined
|
|
})
|
|
],
|
|
})
|