UNPKG

@neo4j/graphql

Version:

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

70 lines 2.85 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.vectorResolver = vectorResolver; const translate_1 = require("../../../translate"); const utils_1 = require("../../../utils"); const get_neo4j_resolve_tree_1 = __importDefault(require("../../../utils/get-neo4j-resolve-tree")); const utils_2 = require("../../../utils/utils"); const pagination_1 = require("../../pagination"); const empty_connection_1 = require("./empty-connection"); function vectorResolver({ vectorContext, entityAdapter, }) { return async function resolve(_root, args, context, info) { context.vector = vectorContext; const resolveTree = (0, get_neo4j_resolve_tree_1.default)(info, { args }); resolveTree.args.options = { sort: resolveTree.args.sort, limit: resolveTree.args.limit, offset: resolveTree.args.offset, }; const { cypher, params } = (0, translate_1.translateRead)({ context: { ...context, resolveTree }, entityAdapter, varName: "this", }); const executeResult = await (0, utils_1.execute)({ cypher, params, defaultAccessMode: "READ", context, info, }); if (!executeResult.records[0]) { return { [entityAdapter.operations.rootTypeFieldNames.connection]: empty_connection_1.emptyConnection }; } const record = executeResult.records[0].this; const totalCount = (0, utils_2.isNeoInt)(record.totalCount) ? record.totalCount.toNumber() : record.totalCount; const connection = (0, pagination_1.createConnectionWithEdgeProperties)({ selectionSet: resolveTree, source: { edges: record.edges }, args: { first: args.first, after: args.after }, totalCount, }); return { totalCount, edges: connection.edges, pageInfo: connection.pageInfo, }; }; } //# sourceMappingURL=vector.js.map