graphql-compose-elasticsearch
Version:
Elastic search via GraphQL
51 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepareBodyInResolve = exports.getSearchBodyITC = void 0;
const Query_1 = require("./Query/Query");
const Aggs_1 = require("./Aggs/Aggs");
const Sort_1 = require("./Sort");
const utils_1 = require("../utils");
function getSearchBodyITC(opts) {
const name = (0, utils_1.getTypeName)('SearchBody', opts);
const description = (0, utils_1.desc)(`
Request Body Search
[Documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html)
`);
return opts.getOrCreateITC(name, () => ({
name,
description,
fields: {
query: { type: () => (0, Query_1.getQueryITC)(opts) },
collapse: 'JSON',
aggs: { type: () => (0, Aggs_1.getAggsITC)(opts) },
size: 'Int',
from: 'Int',
sort: { type: () => [(0, Sort_1.getSortITC)(opts)] },
_source: 'JSON',
script_fields: 'JSON',
post_filter: { type: () => (0, Query_1.getQueryITC)(opts) },
highlight: 'JSON',
search_after: 'JSON',
explain: 'Boolean',
version: 'Boolean',
indices_boost: 'JSON',
min_score: 'Float',
search_type: 'String',
rescore: 'JSON',
docvalue_fields: '[String]',
stored_fields: '[String]',
},
}));
}
exports.getSearchBodyITC = getSearchBodyITC;
function prepareBodyInResolve(body, fieldMap) {
if (body.query) {
body.query = (0, Query_1.prepareQueryInResolve)(body.query, fieldMap);
}
if (body.aggs) {
body.aggs = (0, Aggs_1.prepareAggsInResolve)(body.aggs, fieldMap);
}
return body;
}
exports.prepareBodyInResolve = prepareBodyInResolve;
//# sourceMappingURL=SearchBody.js.map