Skip to content

Commit 06add71

Browse files
authored
Merge pull request #6590 from neo4j/fix-validation-context-types
Fix types in Neo4jValidationContext
2 parents 204fce3 + e25fefd commit 06add71

File tree

4 files changed

+31
-7
lines changed

4 files changed

+31
-7
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"prettier-2": "npm:[email protected]",
4444
"set-tz": "0.2.0",
4545
"ts-jest": "29.4.0",
46-
"typescript": "5.8.3"
46+
"typescript": "5.9.2"
4747
},
4848
"packageManager": "[email protected]",
4949
"dependencies": {

packages/graphql/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
"supertest": "7.1.4",
7272
"ts-jest": "29.4.0",
7373
"ts-node": "10.9.2",
74-
"typescript": "5.8.3",
74+
"typescript": "5.9.2",
7575
"ws": "8.18.3"
7676
},
7777
"dependencies": {

packages/graphql/src/schema/validation/Neo4jValidationContext.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,14 @@ export class Neo4jValidationContext extends SDLValidationContext {
5959
super(ast, schema, onError);
6060
this.callbacks = callbacks;
6161
this.typeMapWithExtensions = buildTypeMapWithExtensions(ast.definitions);
62+
6263
this.interfacesMap = buildInterfacesMap(ast.definitions, this.typeMapWithExtensions);
6364
}
6465
}
6566

6667
// build a type map to access specific types and their extensions
6768
function buildTypeMapWithExtensions(definitions: Readonly<DefinitionNode[]>): TypeMapWithExtensions {
68-
return definitions.reduce((acc, def): TypeMapWithExtensions => {
69+
return definitions.reduce((acc, def) => {
6970
if (
7071
def.kind === Kind.OBJECT_TYPE_DEFINITION ||
7172
def.kind === Kind.INTERFACE_TYPE_DEFINITION ||
@@ -77,6 +78,7 @@ function buildTypeMapWithExtensions(definitions: Readonly<DefinitionNode[]>): Ty
7778
) {
7879
const typeName = def.name.value;
7980
if (!acc[typeName]) {
81+
// definition is undefined whilst building the TypeMapWithExtensions, but will eventually be populated
8082
acc[typeName] = { extensions: [], definition: undefined };
8183
}
8284
if (
@@ -101,7 +103,7 @@ function buildInterfacesMap(
101103
definitions: Readonly<DefinitionNode[]>,
102104
typeMapWithExtensions: TypeMapWithExtensions
103105
): Record<string, Array<ObjectTypeDefinitionNode>> {
104-
return definitions.reduce((acc, def): TypeMapWithExtensions => {
106+
return definitions.reduce((acc, def): Record<string, Array<ObjectTypeDefinitionNode>> => {
105107
if (def.kind === Kind.OBJECT_TYPE_DEFINITION || def.kind === Kind.OBJECT_TYPE_EXTENSION) {
106108
const typeName = def.name.value;
107109
for (const defInterface of def.interfaces ?? []) {
@@ -111,7 +113,9 @@ function buildInterfacesMap(
111113
}
112114

113115
const concreteDefinition = typeMapWithExtensions[typeName]?.definition;
114-
acc[interfaceName].push(concreteDefinition);
116+
if (concreteDefinition && concreteDefinition.kind === Kind.OBJECT_TYPE_DEFINITION) {
117+
acc[interfaceName].push(concreteDefinition);
118+
}
115119
}
116120
}
117121
return acc;

yarn.lock

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2676,7 +2676,7 @@ __metadata:
26762676
supertest: "npm:7.1.4"
26772677
ts-jest: "npm:29.4.0"
26782678
ts-node: "npm:10.9.2"
2679-
typescript: "npm:5.8.3"
2679+
typescript: "npm:5.9.2"
26802680
typescript-memoize: "npm:^1.1.1"
26812681
ws: "npm:8.18.3"
26822682
peerDependencies:
@@ -13466,7 +13466,7 @@ __metadata:
1346613466
prettier-2: "npm:[email protected]"
1346713467
set-tz: "npm:0.2.0"
1346813468
ts-jest: "npm:29.4.0"
13469-
typescript: "npm:5.8.3"
13469+
typescript: "npm:5.9.2"
1347013470
languageName: unknown
1347113471
linkType: soft
1347213472

@@ -17369,6 +17369,16 @@ __metadata:
1736917369
languageName: node
1737017370
linkType: hard
1737117371

17372+
"typescript@npm:5.9.2":
17373+
version: 5.9.2
17374+
resolution: "typescript@npm:5.9.2"
17375+
bin:
17376+
tsc: bin/tsc
17377+
tsserver: bin/tsserver
17378+
checksum: 10c0/cd635d50f02d6cf98ed42de2f76289701c1ec587a363369255f01ed15aaf22be0813226bff3c53e99d971f9b540e0b3cc7583dbe05faded49b1b0bed2f638a18
17379+
languageName: node
17380+
linkType: hard
17381+
1737217382
"typescript@patch:typescript@npm%3A5.8.3#optional!builtin<compat/typescript>":
1737317383
version: 5.8.3
1737417384
resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin<compat/typescript>::version=5.8.3&hash=5786d5"
@@ -17379,6 +17389,16 @@ __metadata:
1737917389
languageName: node
1738017390
linkType: hard
1738117391

17392+
"typescript@patch:typescript@npm%3A5.9.2#optional!builtin<compat/typescript>":
17393+
version: 5.9.2
17394+
resolution: "typescript@patch:typescript@npm%3A5.9.2#optional!builtin<compat/typescript>::version=5.9.2&hash=5786d5"
17395+
bin:
17396+
tsc: bin/tsc
17397+
tsserver: bin/tsserver
17398+
checksum: 10c0/34d2a8e23eb8e0d1875072064d5e1d9c102e0bdce56a10a25c0b917b8aa9001a9cf5c225df12497e99da107dc379360bc138163c66b55b95f5b105b50578067e
17399+
languageName: node
17400+
linkType: hard
17401+
1738217402
"umd@npm:^3.0.0":
1738317403
version: 3.0.3
1738417404
resolution: "umd@npm:3.0.3"

0 commit comments

Comments
 (0)