UNPKG

@appbaseio/reactivesearch-vue

Version:

A Vue UI components library for building search experiences

61 lines (58 loc) 1.78 kB
import { helper } from '@appbaseio/reactivecore'; import { a as _extends } from './_rollupPluginBabelHelpers-5e8399d7.js'; var getAggsOrder = helper.getAggsOrder; var extractQuery = function extractQuery(props) { var queryToBeReturned = {}; if (props.defaultQuery) { var evaluateQuery = props.defaultQuery([], props); if (evaluateQuery) { if (evaluateQuery.query) { queryToBeReturned.query = evaluateQuery.query; } if (evaluateQuery.aggs) { queryToBeReturned.aggs = evaluateQuery.aggs; } } } return queryToBeReturned; }; // eslint-disable-next-line import/prefer-default-export var getAggsQuery = function getAggsQuery(query, props) { var _clonedQuery$aggs; var clonedQuery = query; var dataField = props.dataField, size = props.size, sortBy = props.sortBy, showMissing = props.showMissing, missingLabel = props.missingLabel; clonedQuery.size = 0; clonedQuery.aggs = (_clonedQuery$aggs = {}, _clonedQuery$aggs[dataField] = { terms: _extends({ field: dataField, size: size, order: getAggsOrder(sortBy || 'count') }, showMissing ? { missing: missingLabel } : {}) }, _clonedQuery$aggs); if (props.nestedField) { clonedQuery.aggs = { reactivesearch_nested: { nested: { path: props.nestedField }, aggs: clonedQuery.aggs } }; } return _extends({}, clonedQuery, extractQuery(props)); }; var sanitizeObject = function sanitizeObject(obj) { return JSON.parse(JSON.stringify(obj, function (key, value) { return ( // eslint-disable-next-line eqeqeq value === null || value == {} || value === false ? undefined : value ); })); }; export { getAggsQuery as g, sanitizeObject as s };