UNPKG

@payloadcms/plugin-seo

Version:
79 lines 2.96 kB
import type { DocumentInfoContext } from '@payloadcms/ui'; import type { CollectionConfig, CollectionSlug, Field, GlobalConfig, GlobalSlug, PayloadRequest, UploadCollectionSlug } from 'payload'; export type FieldsOverride = (args: { defaultFields: Field[]; }) => Field[]; export type PartialDocumentInfoContext = Pick<DocumentInfoContext, 'collectionSlug' | 'docPermissions' | 'globalSlug' | 'hasPublishedDoc' | 'hasPublishPermission' | 'hasSavePermission' | 'id' | 'initialData' | 'initialState' | 'preferencesKey' | 'title' | 'versionCount'>; export type GenerateTitle<T = any> = (args: { collectionConfig?: CollectionConfig; doc: T; globalConfig?: GlobalConfig; locale?: string; req: PayloadRequest; } & PartialDocumentInfoContext) => Promise<string> | string; export type GenerateDescription<T = any> = (args: { collectionConfig?: CollectionConfig; doc: T; globalConfig?: GlobalConfig; locale?: string; req: PayloadRequest; } & PartialDocumentInfoContext) => Promise<string> | string; export type GenerateImage<T = any> = (args: { collectionConfig?: CollectionConfig; doc: T; globalConfig?: GlobalConfig; locale?: string; req: PayloadRequest; } & PartialDocumentInfoContext) => { id: number | string; } | number | Promise<{ id: number | string; } | number | string> | string; export type GenerateURL<T = any> = (args: { collectionConfig?: CollectionConfig; doc: T; globalConfig?: GlobalConfig; locale?: string; req: PayloadRequest; } & PartialDocumentInfoContext) => Promise<string> | string; export type SEOPluginConfig = { /** * Collections to include the SEO fields in */ collections?: ({} | CollectionSlug)[]; /** * Override the default fields inserted by the SEO plugin via a function that receives the default fields and returns the new fields * * If you need more flexibility you can insert the fields manually as needed. @link https://payloadcms.com/docs/plugins/seo#direct-use-of-fields */ fields?: FieldsOverride; generateDescription?: GenerateDescription; generateImage?: GenerateImage; generateTitle?: GenerateTitle; /** * */ generateURL?: GenerateURL; /** * Globals to include the SEO fields in */ globals?: ({} | GlobalSlug)[]; interfaceName?: string; /** * Group fields into tabs, your content will be automatically put into a general tab and the SEO fields into an SEO tab * * If you need more flexibility you can insert the fields manually as needed. @link https://payloadcms.com/docs/plugins/seo#direct-use-of-fields */ tabbedUI?: boolean; /** * The slug of the collection used to handle image uploads */ uploadsCollection?: {} | UploadCollectionSlug; }; export type Meta = { description?: string; image?: any; keywords?: string; title?: string; }; //# sourceMappingURL=types.d.ts.map