Files
payload/test/plugin-seo/config.ts
Elliot DeNolf 7309d474ee feat!: type auto-generation (#6657)
Types are now auto-generated by default.

You can opt-out of this behavior by setting:
```ts
buildConfig({
  // Rest of config
  typescript: {
    autoGenerate: false
  },
})
```
2024-06-10 13:42:44 -04:00

74 lines
1.9 KiB
TypeScript

import { fileURLToPath } from 'node:url'
import path from 'path'
const filename = fileURLToPath(import.meta.url)
const dirname = path.dirname(filename)
import { seoPlugin } from '@payloadcms/plugin-seo'
import { en } from '@payloadcms/translations/languages/en'
import { es } from '@payloadcms/translations/languages/es'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js'
import { Media } from './collections/Media.js'
import { Pages } from './collections/Pages.js'
import { Users } from './collections/Users.js'
import { seed } from './seed/index.js'
export default buildConfigWithDefaults({
collections: [Users, Pages, Media],
i18n: {
supportedLanguages: {
en,
es,
},
translations: {
es: {
'plugin-seo': {
autoGenerate: 'Auto-génerar',
},
},
},
},
localization: {
defaultLocale: 'en',
fallback: true,
locales: ['en', 'es', 'de'],
},
onInit: async (payload) => {
await payload.create({
collection: 'users',
data: {
email: devUser.email,
password: devUser.password,
},
})
await seed(payload)
},
plugins: [
seoPlugin({
collections: ['pages'],
fieldOverrides: {
title: {
required: true,
},
},
fields: [
{
name: 'ogTitle',
type: 'text',
label: 'og:title',
},
],
generateDescription: ({ doc }: any) => doc?.excerpt?.value || 'generated description',
generateTitle: (data: any) => `Website.com — ${data?.doc?.title?.value}`,
generateURL: ({ doc, locale }: any) =>
`https://yoursite.com/${locale ? locale + '/' : ''}${doc?.slug?.value || ''}`,
tabbedUI: true,
uploadsCollection: 'media',
}),
],
typescript: {
outputFile: path.resolve(dirname, 'payload-types.ts'),
},
})