UNPKG

@neo4j/graphql

Version:

A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations

58 lines 2.7 kB
"use strict"; /* * Copyright (c) "Neo4j" * Neo4j Sweden AB [http://neo4j.com] * * This file is part of Neo4j. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.augmentFulltextSchema = augmentFulltextSchema; const graphql_1 = require("graphql"); const cypher_builder_1 = __importDefault(require("@neo4j/cypher-builder")); const fulltext_input_1 = require("../generation/fulltext-input"); const fulltext_1 = require("../resolvers/query/fulltext"); function augmentFulltextSchema({ composer, concreteEntityAdapter, complexityEstimatorHelper, features, }) { if (!concreteEntityAdapter.annotations.fulltext) { return; } (0, fulltext_input_1.withFulltextWhereInputType)({ composer, concreteEntityAdapter }); concreteEntityAdapter.annotations.fulltext.indexes.forEach((index) => { const fulltextContext = { index, queryType: "query", queryName: index.queryName, scoreVariable: new cypher_builder_1.default.Variable(), }; const fulltextArgs = { phrase: new graphql_1.GraphQLNonNull(graphql_1.GraphQLString), where: concreteEntityAdapter.operations.fulltextTypeNames.where, sort: (0, fulltext_input_1.withFulltextSortInputType)({ concreteEntityAdapter, composer }).NonNull.List, first: features?.limitRequired ? new graphql_1.GraphQLNonNull(graphql_1.GraphQLInt) : graphql_1.GraphQLInt, after: graphql_1.GraphQLString, }; complexityEstimatorHelper.registerField("Query", index.queryName); composer.Query.addFields({ [index.queryName]: { type: (0, fulltext_input_1.withFulltextResultTypeConnection)({ composer, concreteEntityAdapter }).NonNull, resolve: (0, fulltext_1.fulltextResolver)({ fulltextContext, entityAdapter: concreteEntityAdapter }), args: fulltextArgs, }, }); }); } //# sourceMappingURL=fulltext.js.map