@webiny/api-headless-cms-ddb-es
Version:
DynamoDB and Elasticsearch storage operations plugin for Headless CMS API.
50 lines (49 loc) • 1.49 kB
TypeScript
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 {};