@neo4j/graphql
Version:
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations
43 lines • 2.19 kB
TypeScript
import Cypher from "@neo4j/cypher-builder";
import type { ConcreteEntityAdapter } from "../../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
import { RelationshipAdapter } from "../../../../schema-model/relationship/model-adapters/RelationshipAdapter";
import { QueryASTContext } from "../QueryASTContext";
import type { QueryASTNode } from "../QueryASTNode";
import type { AggregationField } from "../fields/aggregation-fields/AggregationField";
import type { Filter } from "../filters/Filter";
import type { AuthorizationFilters } from "../filters/authorization-filters/AuthorizationFilters";
import type { EntitySelection } from "../selection/EntitySelection";
import type { OperationTranspileResult } from "./operations";
import { Operation } from "./operations";
export declare class AggregationOperation extends Operation {
readonly entity: ConcreteEntityAdapter | RelationshipAdapter;
private selection;
protected directed: boolean;
fields: AggregationField[];
nodeFields: AggregationField[];
edgeFields: AggregationField[];
protected authFilters: AuthorizationFilters[];
aggregationProjectionMap: Cypher.Map;
protected filters: Filter[];
constructor({ entity, directed, selection, }: {
entity: ConcreteEntityAdapter | RelationshipAdapter;
directed?: boolean;
selection: EntitySelection;
});
setFields(fields: AggregationField[]): void;
addFilters(...filters: Filter[]): void;
addAuthFilters(...filter: AuthorizationFilters[]): void;
getChildren(): QueryASTNode[];
setNodeFields(fields: AggregationField[]): void;
setEdgeFields(fields: AggregationField[]): void;
transpile(context: QueryASTContext): OperationTranspileResult;
protected getAuthFilterPredicate(context: QueryASTContext): Cypher.Predicate[];
protected getFieldProjectionClause(target: Cypher.Variable, returnVariable: Cypher.Variable, field: AggregationField): Cypher.Clause;
private getPattern;
private createContext;
private transpileAggregation;
private getPredicates;
private getValidations;
private createSubquery;
}
//# sourceMappingURL=AggregationOperation.d.ts.map