Skip to content

Commit effec62

Browse files
committed
Remove old translation layer
1 parent 7d5ebc2 commit effec62

File tree

56 files changed

+71
-5718
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+71
-5718
lines changed

packages/graphql/src/classes/CallbackBucketDeprecated.ts

Lines changed: 0 additions & 145 deletions
This file was deleted.

packages/graphql/src/schema/resolvers/mutation/create.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import { Kind, type FieldNode, type GraphQLResolveInfo } from "graphql";
2121
import type { Node } from "../../../classes";
2222
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
23-
import { translateCreate } from "../../../translate";
23+
import { translateCreate } from "../../../translate/translate-create";
2424
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
2525
import { execute } from "../../../utils";
2626
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";

packages/graphql/src/schema/resolvers/mutation/delete.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import type { GraphQLResolveInfo } from "graphql";
2121
import type { SchemaComposer } from "graphql-compose";
2222
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
23-
import { translateDelete } from "../../../translate";
23+
import { translateDelete } from "../../../translate/translate-delete";
2424
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
2525
import { execute } from "../../../utils";
2626
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";

packages/graphql/src/schema/resolvers/mutation/update.ts

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,24 @@
1717
* limitations under the License.
1818
*/
1919

20+
import type Cypher from "@neo4j/cypher-builder";
21+
import { debug } from "console";
2022
import { Kind, type FieldNode, type GraphQLResolveInfo } from "graphql";
2123
import type {
2224
ObjectTypeComposerArgumentConfigAsObjectDefinition,
2325
ObjectTypeComposerFieldConfigAsObjectDefinition,
2426
} from "graphql-compose";
27+
import type { ResolveTree } from "graphql-parse-resolve-info";
2528
import type { Node } from "../../../classes";
29+
import type { EntityAdapter } from "../../../schema-model/entity/EntityAdapter";
2630
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
27-
import { translateUpdate } from "../../../translate";
31+
import { QueryASTFactory } from "../../../translate/queryAST/factory/QueryASTFactory";
32+
import { CallbackBucket } from "../../../translate/queryAST/utils/callback-bucket";
33+
import { buildClause } from "../../../translate/utils/build-clause";
2834
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
2935
import { execute } from "../../../utils";
3036
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";
3137
import type { Neo4jGraphQLComposedContext } from "../composition/wrap-query-and-mutation";
32-
import { translateUpdate2 } from "../../../translate/translate-update";
3338

3439
export function updateResolver({
3540
node,
@@ -43,8 +48,7 @@ export function updateResolver({
4348

4449
(context as Neo4jGraphQLTranslationContext).resolveTree = resolveTree;
4550

46-
// const [cypher, params] = await translateUpdate({ context: context as Neo4jGraphQLTranslationContext, node });
47-
const { cypher, params } = await translateUpdate2({ context: context as Neo4jGraphQLTranslationContext, node });
51+
const { cypher, params } = await translateUpdate({ context: context as Neo4jGraphQLTranslationContext, node });
4852
const executeResult = await execute({
4953
cypher,
5054
params,
@@ -85,3 +89,56 @@ export function updateResolver({
8589
},
8690
};
8791
}
92+
93+
async function translateUsingQueryAST({
94+
context,
95+
entityAdapter,
96+
resolveTree,
97+
varName,
98+
}: {
99+
context: Neo4jGraphQLTranslationContext;
100+
entityAdapter: EntityAdapter;
101+
resolveTree: ResolveTree;
102+
varName: string;
103+
}): Promise<Cypher.CypherResult> {
104+
const operationsTreeFactory = new QueryASTFactory(context.schemaModel);
105+
106+
if (!entityAdapter) {
107+
throw new Error("Entity not found");
108+
}
109+
110+
const callbackBucket = new CallbackBucket(context);
111+
112+
const operationsTree = operationsTreeFactory.createMutationAST({
113+
resolveTree,
114+
entityAdapter,
115+
context,
116+
varName,
117+
callbackBucket,
118+
});
119+
120+
debug(operationsTree.print());
121+
await callbackBucket.resolveCallbacks();
122+
123+
const clause = operationsTree.build(context, varName);
124+
return buildClause(clause, { context });
125+
}
126+
127+
async function translateUpdate({
128+
context,
129+
node,
130+
}: {
131+
context: Neo4jGraphQLTranslationContext;
132+
node: Node;
133+
}): Promise<{ cypher: string; params: Record<string, any> }> {
134+
const { resolveTree } = context;
135+
const entityAdapter = context.schemaModel.getConcreteEntityAdapter(node.name);
136+
if (!entityAdapter) {
137+
throw new Error(`Transpilation error: ${node.name} is not a concrete entity`);
138+
}
139+
140+
const varName = "this";
141+
const result = await translateUsingQueryAST({ context, entityAdapter, resolveTree, varName });
142+
143+
return result;
144+
}

packages/graphql/src/schema/resolvers/query/cypher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import type { GraphQLResolveInfo } from "graphql";
2121
import type { AttributeAdapter } from "../../../schema-model/attribute/model-adapters/AttributeAdapter";
22-
import { translateTopLevelCypher } from "../../../translate";
22+
import { translateTopLevelCypher } from "../../../translate/translate-top-level-cypher";
2323
import type { CypherField } from "../../../types";
2424
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
2525
import { execute } from "../../../utils";

packages/graphql/src/schema/resolvers/query/fulltext.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import type { GraphQLFieldResolver, GraphQLResolveInfo, SelectionSetNode } from "graphql";
2121
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
2222
import type { InterfaceEntityAdapter } from "../../../schema-model/entity/model-adapters/InterfaceEntityAdapter";
23-
import { translateRead } from "../../../translate";
23+
import { translateRead } from "../../../translate/translate-read";
2424
import type { FulltextContext } from "../../../types";
2525
import { execute } from "../../../utils";
2626
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";

packages/graphql/src/schema/resolvers/query/global-node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import type { GraphQLResolveInfo } from "graphql";
2121
import type { FieldsByTypeName } from "graphql-parse-resolve-info";
2222
import { parseResolveInfo } from "graphql-parse-resolve-info";
2323
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
24-
import { translateRead } from "../../../translate";
24+
import { translateRead } from "../../../translate/translate-read";
2525
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
2626
import { execute } from "../../../utils";
2727
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";

packages/graphql/src/schema/resolvers/query/read.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import { GraphQLInt, GraphQLNonNull, type GraphQLResolveInfo } from "graphql";
2121
import type { SchemaComposer } from "graphql-compose";
2222
import type { EntityAdapter } from "../../../schema-model/entity/EntityAdapter";
2323
import { UnionEntityAdapter } from "../../../schema-model/entity/model-adapters/UnionEntityAdapter";
24-
import { translateRead } from "../../../translate";
2524
import { isConcreteEntity } from "../../../translate/queryAST/utils/is-concrete-entity";
25+
import { translateRead } from "../../../translate/translate-read";
2626
import type { Neo4jGraphQLTranslationContext } from "../../../types/neo4j-graphql-translation-context";
2727
import { execute } from "../../../utils";
2828
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";

packages/graphql/src/schema/resolvers/query/root-connection.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ import { PageInfo } from "../../../graphql/objects/PageInfo";
3030
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
3131
import type { InterfaceEntityAdapter } from "../../../schema-model/entity/model-adapters/InterfaceEntityAdapter";
3232
import { UnionEntityAdapter } from "../../../schema-model/entity/model-adapters/UnionEntityAdapter";
33-
import { translateRead } from "../../../translate";
33+
import type { Neo4jGraphQLSchemaModel } from "../../../schema-model/Neo4jGraphQLSchemaModel";
34+
import { translateRead } from "../../../translate/translate-read";
3435
import { execute } from "../../../utils";
3536
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";
3637
import { isNeoInt } from "../../../utils/utils";
@@ -39,7 +40,6 @@ import { createConnectionWithEdgeProperties } from "../../pagination";
3940
import { graphqlDirectivesToCompose } from "../../to-compose";
4041
import type { Neo4jGraphQLComposedContext } from "../composition/wrap-query-and-mutation";
4142
import { emptyConnection } from "./empty-connection";
42-
import type { Neo4jGraphQLSchemaModel } from "../../../schema-model/Neo4jGraphQLSchemaModel";
4343

4444
export function rootConnectionResolver({
4545
composer,

packages/graphql/src/schema/resolvers/query/vector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import type { GraphQLFieldResolver, GraphQLResolveInfo, SelectionSetNode } from "graphql";
2121
import type { ConcreteEntityAdapter } from "../../../schema-model/entity/model-adapters/ConcreteEntityAdapter";
2222
import type { InterfaceEntityAdapter } from "../../../schema-model/entity/model-adapters/InterfaceEntityAdapter";
23-
import { translateRead } from "../../../translate";
23+
import { translateRead } from "../../../translate/translate-read";
2424
import type { VectorContext } from "../../../types";
2525
import { execute } from "../../../utils";
2626
import getNeo4jResolveTree from "../../../utils/get-neo4j-resolve-tree";

0 commit comments

Comments
 (0)