UNPKG

@payloadcms/plugin-search

Version:
81 lines 2.69 kB
import type { CollectionAfterChangeHook, CollectionBeforeDeleteHook, CollectionConfig, Field, Locale, Payload, PayloadRequest, StaticLabel } from 'payload'; export type DocToSync = { [key: string]: any; doc: { relationTo: string; value: string; }; title: string; }; export type BeforeSync = (args: { originalDoc: { [key: string]: any; }; payload: Payload; req: PayloadRequest; searchDoc: DocToSync; }) => DocToSync | Promise<DocToSync>; export type FieldsOverride = (args: { defaultFields: Field[]; }) => Field[]; export type SearchPluginConfig = { /** * @deprecated * This plugin gets the api route from the config directly and does not need to be passed in. * As long as you have `routes.api` set in your Payload config, the plugin will use that. * This property will be removed in the next major version. */ apiBasePath?: string; beforeSync?: BeforeSync; collections?: string[]; defaultPriorities?: { [collection: string]: ((doc: any) => number | Promise<number>) | number; }; /** * Controls whether drafts are deleted from the search index * * @default true */ deleteDrafts?: boolean; localize?: boolean; /** * We use batching when re-indexing large collections. You can control the amount of items per batch, lower numbers should help with memory. * * @default 50 */ reindexBatchSize?: number; searchOverrides?: { fields?: FieldsOverride; } & Partial<Omit<CollectionConfig, 'fields'>>; /** * Controls whether drafts are synced to the search index * * @default false */ syncDrafts?: boolean; }; export type CollectionLabels = { [collection: string]: CollectionConfig['labels']; }; export type ResolvedCollectionLabels = { [collection: string]: StaticLabel; }; export type SearchPluginConfigWithLocales = { labels?: CollectionLabels; locales?: string[]; } & SearchPluginConfig; export type SanitizedSearchPluginConfig = { reindexBatchSize: number; syncDrafts: boolean; } & SearchPluginConfigWithLocales; export type SyncWithSearchArgs = { collection: string; pluginConfig: SearchPluginConfig; } & Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'>; export type SyncDocArgs = { locale?: Locale['code']; onSyncError?: () => void; } & Omit<SyncWithSearchArgs, 'context' | 'previousDoc'>; export type SyncWithSearch = (Args: SyncWithSearchArgs) => ReturnType<CollectionAfterChangeHook>; export type DeleteFromSearch = (args: SearchPluginConfig) => CollectionBeforeDeleteHook; //# sourceMappingURL=types.d.ts.map