UNPKG

@webiny/api-headless-cms-ddb-es

Version:

DynamoDB and Elasticsearch storage operations plugin for Headless CMS API.

50 lines (49 loc) 1.49 kB
import { Plugin } from "@webiny/plugins"; import { ValueFilterPlugin } from "@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin"; import { ModelField, ModelFields } from "../operations/entry/elasticsearch/types"; import { ElasticsearchBoolQueryConfig } from "@webiny/api-elasticsearch/types"; interface CmsEntryFilterPluginConfig { fieldType: string; exec: (params: ExecParams) => void; } interface ApplyParams { key: string; value: any; query: ElasticsearchBoolQueryConfig; operator: string; field: ModelField; } export interface ApplyFilteringCb { (params: ApplyParams): void; } export interface GetFilterPluginCb { (type: string): CmsEntryFilterPlugin; } interface ExecParams { applyFiltering: ApplyFilteringCb; getFilterPlugin: GetFilterPluginCb; key: string; value: any; operator: string; field: ModelField; fields: ModelFields; query: ElasticsearchBoolQueryConfig; } export interface CmsEntryFilterPluginCreateResponse { field: ModelField; path: string; fieldPathId: string; plugin: ValueFilterPlugin; negate: boolean; compareValue: any; transformValue: <I = any, O = any>(value: I) => O; } export declare class CmsEntryFilterPlugin extends Plugin { static readonly type: string; static readonly ALL: string; private readonly config; readonly fieldType: string; constructor(config: CmsEntryFilterPluginConfig); exec(params: ExecParams): void; } export {};