@neo4j/graphql
Version:
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations
152 lines • 7.15 kB
JavaScript
;
/*
* 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.RelationshipBaseOperations = void 0;
const upper_first_1 = require("../../../utils/upper-first");
class RelationshipBaseOperations {
constructor(relationship) {
this.relationship = relationship;
}
get prefixForTypename() {
return `${this.relationship.source.name}${(0, upper_first_1.upperFirst)(this.relationship.name)}`;
}
get prefixForTypenameWithInheritance() {
const prefix = this.relationship.firstDeclaredInTypeName || this.relationship.source.name;
return `${prefix}${(0, upper_first_1.upperFirst)(this.relationship.name)}`;
}
/**Note: Required for now to infer the types without ResolveTree
* @deprecated use getAggregateFieldTypename
*
*/
getAggregationFieldTypename(nestedField) {
const nestedFieldStr = (0, upper_first_1.upperFirst)(nestedField || "");
const aggregationStr = nestedField ? "Aggregate" : "Aggregation";
return `${this.relationship.source.name}${this.relationship.target.name}${(0, upper_first_1.upperFirst)(this.relationship.name)}${nestedFieldStr}${aggregationStr}Selection`;
}
getAggregateFieldTypename(nestedField) {
const nestedFieldStr = (0, upper_first_1.upperFirst)(nestedField || "");
return `${this.relationship.source.name}${this.relationship.target.name}${(0, upper_first_1.upperFirst)(this.relationship.name)}${nestedFieldStr}AggregateSelection`;
}
getTargetTypePrettyName() {
if (this.relationship.isList) {
return `[${this.relationship.target.name}!]${!this.relationship.isNullable ? "!" : ""}`;
}
return `${this.relationship.target.name}${!this.relationship.isNullable ? "!" : ""}`;
}
getFieldInputTypeName(ifUnionRelationshipTargetEntity) {
return `${this.prefixForTypename}${ifUnionRelationshipTargetEntity?.name || ""}FieldInput`;
}
getConnectionUnionWhereInputTypename(concreteEntityAdapter) {
return `${this.prefixForTypenameWithInheritance}${concreteEntityAdapter.name}ConnectionWhere`;
}
/**Note: Required for now to infer the types without ResolveTree */
get connectionFieldTypename() {
return `${this.prefixForTypenameWithInheritance}Connection`;
}
get connectionSortInputTypename() {
return `${this.connectionFieldTypename}Sort`;
}
get connectionWhereInputTypename() {
return `${this.connectionFieldTypename}Where`;
}
/**Note: Required for now to infer the types without ResolveTree */
get relationshipFieldTypename() {
return `${this.prefixForTypenameWithInheritance}Relationship`;
}
getUpdateFieldInputTypeName(ifUnionRelationshipTargetEntity) {
return `${this.prefixForTypename}${ifUnionRelationshipTargetEntity?.name || ""}UpdateFieldInput`;
}
getCreateFieldInputTypeName(ifUnionRelationshipTargetEntity) {
return `${this.prefixForTypename}${ifUnionRelationshipTargetEntity?.name || ""}CreateFieldInput`;
}
getDeleteFieldInputTypeName(ifUnionRelationshipTargetEntity) {
return `${this.fieldInputPrefixForTypename}${(0, upper_first_1.upperFirst)(this.relationship.name)}${ifUnionRelationshipTargetEntity?.name || ""}DeleteFieldInput`;
}
getConnectFieldInputTypeName(ifUnionRelationshipTargetEntity) {
return `${this.prefixForTypename}${ifUnionRelationshipTargetEntity?.name || ""}ConnectFieldInput`;
}
getDisconnectFieldInputTypeName(ifUnionRelationshipTargetEntity) {
return `${this.fieldInputPrefixForTypename}${(0, upper_first_1.upperFirst)(this.relationship.name)}${ifUnionRelationshipTargetEntity?.name || ""}DisconnectFieldInput`;
}
get connectionFieldName() {
return `${this.relationship.name}Connection`;
}
getConnectionWhereTypename(ifUnionRelationshipTargetEntity) {
return `${this.prefixForTypenameWithInheritance}${ifUnionRelationshipTargetEntity?.name || ""}ConnectionWhere`;
}
getUpdateConnectionInputTypename(ifUnionRelationshipTargetEntity) {
return `${this.prefixForTypename}${ifUnionRelationshipTargetEntity?.name || ""}UpdateConnectionInput`;
}
// Legacy typename superseded by getUpdateConnectionInputTypename, which is slightly different type - contains nodes for edges/nodes
get aggregateInputTypeName() {
return `${this.prefixForTypename}AggregateInput`;
}
get connectionAggregateInputTypeName() {
return `${this.prefixForTypename}ConnectionAggregateInput`;
}
get aggregateFieldName() {
return `${this.relationship.name}Aggregate`;
}
get nodeAggregationWhereInputTypeName() {
return `${this.prefixForTypename}NodeAggregationWhereInput`;
}
get unionConnectInputTypeName() {
return `${(0, upper_first_1.upperFirst)(this.prefixForTypename)}ConnectInput`;
}
get unionDeleteInputTypeName() {
return `${(0, upper_first_1.upperFirst)(this.prefixForTypename)}DeleteInput`;
}
get unionDisconnectInputTypeName() {
return `${(0, upper_first_1.upperFirst)(this.prefixForTypename)}DisconnectInput`;
}
get unionCreateInputTypeName() {
return `${(0, upper_first_1.upperFirst)(this.prefixForTypename)}CreateInput`;
}
get unionCreateFieldInputTypeName() {
return `${(0, upper_first_1.upperFirst)(this.prefixForTypename)}CreateFieldInput`;
}
get unionUpdateInputTypeName() {
return `${(0, upper_first_1.upperFirst)(this.prefixForTypename)}UpdateInput`;
}
getToUnionUpdateInputTypeName(ifUnionRelationshipTargetEntity) {
return `${this.prefixForTypename}${ifUnionRelationshipTargetEntity.name}UpdateInput`;
}
get edgeCreateInputTypeName() {
const isRequired = this.relationship.hasNonNullCreateInputFields;
return `${this.edgePrefix}CreateInput${isRequired ? `!` : ""}`;
}
get createInputTypeName() {
return `${this.edgePrefix}CreateInput`;
}
get edgeUpdateInputTypeName() {
return `${this.edgePrefix}UpdateInput`;
}
get whereInputTypeName() {
return `${this.edgePrefix}Where`;
}
get sortInputTypeName() {
return `${this.edgePrefix}Sort`;
}
get edgeAggregationWhereInputTypeName() {
return `${this.edgePrefix}AggregationWhereInput`;
}
}
exports.RelationshipBaseOperations = RelationshipBaseOperations;
//# sourceMappingURL=RelationshipBaseOperations.js.map