@neo4j/graphql
Version:
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations
45 lines • 1.98 kB
TypeScript
import Cypher from "@neo4j/cypher-builder";
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
type Scope = Map<string, Cypher.Variable>;
export declare class QueryASTEnv {
private scopes;
topLevelOperationName: "READ" | "CREATE" | "UPDATE" | "DELETE";
getScope(element: Cypher.Node | Cypher.Relationship): Scope;
}
type ContextDirection = "left" | "right" | "undirected";
export declare class QueryASTContext<T extends Cypher.Node | undefined = Cypher.Node | undefined> {
readonly target: T;
readonly relationship?: Cypher.Relationship;
readonly direction?: ContextDirection;
readonly source?: Cypher.Node;
readonly returnVariable: Cypher.Variable;
readonly shouldCollect: boolean;
readonly shouldDistinct: boolean;
env: QueryASTEnv;
neo4jGraphQLContext: Neo4jGraphQLTranslationContext;
constructor({ target, relationship, direction, source, env, neo4jGraphQLContext, returnVariable, shouldCollect, shouldDistinct, }: {
target: T;
relationship?: Cypher.Relationship;
direction?: ContextDirection;
source?: Cypher.Node;
env?: QueryASTEnv;
neo4jGraphQLContext: Neo4jGraphQLTranslationContext;
returnVariable?: Cypher.Variable;
shouldCollect?: boolean;
shouldDistinct?: boolean;
});
hasTarget(): this is QueryASTContext<Cypher.Node>;
getRelationshipScope(): Scope;
getTargetScope(): Scope;
getScopeVariable(name: string): Cypher.Variable;
push({ relationship, direction, target, returnVariable, }: {
relationship: Cypher.Relationship;
direction?: ContextDirection;
target: Cypher.Node;
returnVariable?: Cypher.Variable;
}): QueryASTContext<Cypher.Node>;
setReturn(variable: Cypher.Variable): QueryASTContext<T>;
setTarget(target: Cypher.Node): QueryASTContext<Cypher.Node>;
}
export {};
//# sourceMappingURL=QueryASTContext.d.ts.map