graphql-compose-elasticsearch
Version:
Elastic search via GraphQL
47 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertAggsRules = exports.convertAggsBlocks = exports.prepareAggsInResolve = exports.getAggsITC = void 0;
const AggBlock_1 = require("./AggBlock");
function getAggsITC(opts) {
return [(0, AggBlock_1.getAggBlockITC)(opts)];
}
exports.getAggsITC = getAggsITC;
function prepareAggsInResolve(aggs, _fieldMap) {
if (Array.isArray(aggs)) {
return convertAggsBlocks(aggs);
}
return aggs;
}
exports.prepareAggsInResolve = prepareAggsInResolve;
function convertAggsBlocks(blockList) {
const result = {};
blockList.forEach((block) => {
if (block.key && block.value) {
result[block.key] = convertAggsRules(block.value);
}
});
return result;
}
exports.convertAggsBlocks = convertAggsBlocks;
function convertAggsRules(rules) {
if (typeof rules === 'string')
return rules;
const result = {};
Object.keys(rules).forEach((key) => {
if (key === 'aggs' && rules.aggs) {
result.aggs = convertAggsBlocks(rules.aggs);
}
else if (Array.isArray(rules[key])) {
result[key.replace(/__/g, '.')] = rules[key].map((rule) => convertAggsRules(rule));
}
else if (typeof rules[key] === 'object') {
result[key.replace(/__/g, '.')] = convertAggsRules(rules[key]);
}
else {
result[key.replace(/__/g, '.')] = rules[key];
}
});
return result;
}
exports.convertAggsRules = convertAggsRules;
//# sourceMappingURL=Aggs.js.map