UNPKG

graphql-compose-elasticsearch

Version:
163 lines 7.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.renameUnderscoredToDots = exports.prepareQueryInResolve = exports.getQueryITC = void 0; const MatchAll_1 = require("./MatchAll"); const Bool_1 = require("./Compound/Bool"); const ConstantScore_1 = require("./Compound/ConstantScore"); const DisMax_1 = require("./Compound/DisMax"); const Boosting_1 = require("./Compound/Boosting"); const FunctionScore_1 = require("./Compound/FunctionScore"); const Exists_1 = require("./TermLevel/Exists"); const Fuzzy_1 = require("./TermLevel/Fuzzy"); const Ids_1 = require("./TermLevel/Ids"); const Prefix_1 = require("./TermLevel/Prefix"); const Range_1 = require("./TermLevel/Range"); const Regexp_1 = require("./TermLevel/Regexp"); const Type_1 = require("./TermLevel/Type"); const Term_1 = require("./TermLevel/Term"); const Terms_1 = require("./TermLevel/Terms"); const Wildcard_1 = require("./TermLevel/Wildcard"); const Match_1 = require("./FullText/Match"); const MatchPhrase_1 = require("./FullText/MatchPhrase"); const MatchPhrasePrefix_1 = require("./FullText/MatchPhrasePrefix"); const MultiMatch_1 = require("./FullText/MultiMatch"); const Common_1 = require("./FullText/Common"); const QueryString_1 = require("./FullText/QueryString"); const SimpleQueryString_1 = require("./FullText/SimpleQueryString"); const GeoBoundingBox_1 = require("./Geo/GeoBoundingBox"); const GeoDistance_1 = require("./Geo/GeoDistance"); const GeoPolygon_1 = require("./Geo/GeoPolygon"); const GeoShape_1 = require("./Geo/GeoShape"); const MoreLikeThis_1 = require("./Specialized/MoreLikeThis"); const Percolate_1 = require("./Specialized/Percolate"); const Script_1 = require("./Specialized/Script"); const HasChild_1 = require("./Joining/HasChild"); const HasParent_1 = require("./Joining/HasParent"); const Nested_1 = require("./Joining/Nested"); const ParentId_1 = require("./Joining/ParentId"); const utils_1 = require("../../utils"); function getQueryITC(opts) { const name = (0, utils_1.getTypeName)('Query', opts); const description = (0, utils_1.desc)(` Elasticsearch provides a full Query DSL based on JSON to define queries. [Query DSL](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html) `); return opts.getOrCreateITC(name, () => ({ name, description, fields: { match_all: (0, MatchAll_1.getMatchAllITC)(opts), bool: (0, Bool_1.getBoolITC)(opts), constant_score: (0, ConstantScore_1.getConstantScoreITC)(opts), dis_max: (0, DisMax_1.getDisMaxITC)(opts), boosting: (0, Boosting_1.getBoostingITC)(opts), function_score: (0, FunctionScore_1.getFunctionScoreITC)(opts), match: (0, Match_1.getMatchITC)(opts), match_phrase: (0, MatchPhrase_1.getMatchPhraseITC)(opts), match_phrase_prefix: (0, MatchPhrasePrefix_1.getMatchPhrasePrefixITC)(opts), multi_match: (0, MultiMatch_1.getMultiMatchITC)(opts), common: (0, Common_1.getCommonITC)(opts), query_string: (0, QueryString_1.getQueryStringITC)(opts), simple_query_string: (0, SimpleQueryString_1.getSimpleQueryStringITC)(opts), exists: (0, Exists_1.getExistsITC)(opts), fuzzy: (0, Fuzzy_1.getFuzzyITC)(opts), ids: (0, Ids_1.getIdsITC)(opts), prefix: (0, Prefix_1.getPrefixITC)(opts), range: (0, Range_1.getRangeITC)(opts), regexp: (0, Regexp_1.getRegexpITC)(opts), type: (0, Type_1.getTypeITC)(opts), term: (0, Term_1.getTermITC)(opts), terms: (0, Terms_1.getTermsITC)(opts), wildcard: (0, Wildcard_1.getWildcardITC)(opts), geo_bounding_box: (0, GeoBoundingBox_1.getGeoBoundingBoxITC)(opts), geo_distance: (0, GeoDistance_1.getGeoDistanceITC)(opts), geo_polygon: (0, GeoPolygon_1.getGeoPolygonITC)(opts), geo_shape: (0, GeoShape_1.getGeoShapeITC)(opts), more_like_this: (0, MoreLikeThis_1.getMoreLikeThisITC)(opts), percolate: (0, Percolate_1.getPercolateITC)(opts), script: (0, Script_1.getScriptITC)(opts), has_child: (0, HasChild_1.getHasChildITC)(opts), has_parent: (0, HasParent_1.getHasParentITC)(opts), nested: (0, Nested_1.getNestedITC)(opts), parent_id: (0, ParentId_1.getParentIdITC)(opts), }, })); } exports.getQueryITC = getQueryITC; function prepareQueryInResolve(query, fieldMap) { if (query.bool) { query.bool = (0, Bool_1.prepareBoolInResolve)(query.bool, fieldMap); } if (query.nested && query.nested.query && query.nested.path) { query.nested.path = query.nested.path.replace(/__/g, '.'); query.nested.query = prepareQueryInResolve(query.nested.query, fieldMap); } if (query.constant_score) { query.constant_score = (0, ConstantScore_1.prepareConstantScoreInResolve)(query.constant_score, fieldMap); } if (query.dis_max) { query.dis_max = (0, DisMax_1.prepareDisMaxResolve)(query.dis_max, fieldMap); } if (query.boosting) { query.boosting = (0, Boosting_1.prepareBoostingInResolve)(query.boosting, fieldMap); } if (query.function_score) { query.function_score = (0, FunctionScore_1.prepareFunctionScoreInResolve)(query.function_score, fieldMap); } if (query.match) { query.match = renameUnderscoredToDots(query.match, fieldMap); } if (query.match_phrase) { query.match_phrase = renameUnderscoredToDots(query.match_phrase, fieldMap); } if (query.match_phrase_prefix) { query.match_phrase_prefix = renameUnderscoredToDots(query.match_phrase_prefix, fieldMap); } if (query.common) { query.common = renameUnderscoredToDots(query.common, fieldMap); } if (query.geo_bounding_box) { query.geo_bounding_box = renameUnderscoredToDots(query.geo_bounding_box, fieldMap); } if (query.geo_distance) { query.geo_distance = renameUnderscoredToDots(query.geo_distance, fieldMap); } if (query.geo_polygon) { query.geo_polygon = renameUnderscoredToDots(query.geo_polygon, fieldMap); } if (query.geo_shape) { query.geo_shape = renameUnderscoredToDots(query.geo_shape, fieldMap); } if (query.fuzzy) { query.fuzzy = renameUnderscoredToDots(query.fuzzy, fieldMap); } if (query.prefix) { query.prefix = renameUnderscoredToDots(query.prefix, fieldMap); } if (query.range) { query.range = renameUnderscoredToDots(query.range, fieldMap); } if (query.regexp) { query.regexp = renameUnderscoredToDots(query.regexp, fieldMap); } if (query.term) { query.term = renameUnderscoredToDots(query.term, fieldMap); } if (query.terms) { query.terms = renameUnderscoredToDots(query.terms, fieldMap); } if (query.wildcard) { query.wildcard = renameUnderscoredToDots(query.wildcard, fieldMap); } return query; } exports.prepareQueryInResolve = prepareQueryInResolve; function renameUnderscoredToDots(obj, _fieldMap) { const result = {}; Object.keys(obj).forEach((o) => { result[o.replace(/__/g, '.')] = obj[o]; }); return result; } exports.renameUnderscoredToDots = renameUnderscoredToDots; //# sourceMappingURL=Query.js.map