UNPKG

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

Version:

DynamoDB and Elasticsearch storage operations plugin for Headless CMS API.

59 lines (57 loc) 1.49 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.createApplyFiltering = void 0; var _error = _interopRequireDefault(require("@webiny/error")); var _transformValueForSearch = require("../transformValueForSearch"); var _keyword = require("../keyword"); var _path = require("./path"); const createApplyFiltering = ({ operatorPlugins, searchPlugins }) => { const createFieldPath = (0, _path.createFieldPathFactory)({ plugins: searchPlugins }); return params => { const { key, value: initialValue, query, operator, field } = params; const plugin = operatorPlugins[operator]; if (!plugin) { throw new _error.default(`Elasticsearch operator "${operator}" plugin missing.`, "PLUGIN_MISSING", { operator }); } const value = (0, _transformValueForSearch.transformValueForSearch)({ plugins: searchPlugins, field: field.field, value: initialValue }); const keyword = (0, _keyword.hasKeyword)(field); const { basePath, path } = createFieldPath({ field, value, key, keyword }); plugin.apply(query, { name: field.field.fieldId, basePath, path, value, keyword }); }; }; exports.createApplyFiltering = createApplyFiltering; //# sourceMappingURL=applyFiltering.js.map