UNPKG

@appbaseio/reactivesearch-vue

Version:

A Vue UI components library for building search experiences

64 lines (60 loc) 1.9 kB
'use strict'; var reactivecore = require('@appbaseio/reactivecore'); var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-1a877b17.js'); var getAggsOrder = reactivecore.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: _rollupPluginBabelHelpers._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 _rollupPluginBabelHelpers._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 ); })); }; exports.getAggsQuery = getAggsQuery; exports.sanitizeObject = sanitizeObject;