@appbaseio/reactivesearch-vue
Version:
A Vue UI components library for building search experiences
64 lines (60 loc) • 1.9 kB
JavaScript
;
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;