UNPKG

@neo4j/graphql

Version:

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

44 lines 1.78 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. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.findConflictingAttributes = findConflictingAttributes; const parse_mutation_field_1 = require("../translate/queryAST/factory/parsers/parse-mutation-field"); function findConflictingAttributes(fields, entityOrRel) { const fieldsByDbName = new Map(); for (const rawField of fields) { const { fieldName } = (0, parse_mutation_field_1.parseMutationField)(rawField); const dbName = entityOrRel.findAttribute(fieldName)?.databaseName; if (dbName) { const duplicateFields = fieldsByDbName.get(dbName) ?? []; duplicateFields.push(rawField); fieldsByDbName.set(dbName, duplicateFields); } } const conflictingAttributes = new Set(); for (const dedupedProps of fieldsByDbName.values()) { if (dedupedProps.length > 1) { for (const fieldName of dedupedProps) { conflictingAttributes.add(fieldName); } } } return conflictingAttributes; } //# sourceMappingURL=find-conflicting-properties.js.map