UNPKG

graphql-compose-elasticsearch

Version:
47 lines 1.58 kB
"use strict"; 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