@commitspark/graphql-api 0.9.4 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/container.js +21 -13
  3. package/dist/container.js.map +1 -1
  4. package/dist/graphql/field-resolver/entry-reference-resolver.d.ts +9 -0
  5. package/dist/graphql/field-resolver/entry-reference-resolver.js +15 -0
  6. package/dist/graphql/field-resolver/entry-reference-resolver.js.map +1 -0
  7. package/dist/graphql/field-resolver/field-default-value-resolver.d.ts +14 -0
  8. package/dist/graphql/field-resolver/field-default-value-resolver.js +73 -0
  9. package/dist/graphql/field-resolver/field-default-value-resolver.js.map +1 -0
  10. package/dist/graphql/field-resolver/fieldResolver.d.ts +11 -0
  11. package/dist/graphql/field-resolver/fieldResolver.js +3 -0
  12. package/dist/graphql/field-resolver/fieldResolver.js.map +1 -0
  13. package/dist/graphql/field-resolver/union-value-resolver.d.ts +10 -0
  14. package/dist/graphql/field-resolver/union-value-resolver.js +17 -0
  15. package/dist/graphql/field-resolver/union-value-resolver.js.map +1 -0
  16. package/dist/graphql/input-type-generator.service.d.ts +3 -3
  17. package/dist/graphql/input-type-generator.service.js +18 -7
  18. package/dist/graphql/input-type-generator.service.js.map +1 -1
  19. package/dist/graphql/queries-mutations-generator.service.d.ts +1 -1
  20. package/dist/graphql/resolver-generators/mutation-create-resolver-generator.d.ts +3 -1
  21. package/dist/graphql/resolver-generators/mutation-create-resolver-generator.js +46 -4
  22. package/dist/graphql/resolver-generators/mutation-create-resolver-generator.js.map +1 -1
  23. package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts +3 -1
  24. package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.js +32 -9
  25. package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +1 -1
  26. package/dist/graphql/resolver-generators/{mutation-update.resolver-generator.d.ts → mutation-update-resolver-generator.d.ts} +4 -1
  27. package/dist/graphql/resolver-generators/mutation-update-resolver-generator.js +53 -0
  28. package/dist/graphql/resolver-generators/mutation-update-resolver-generator.js.map +1 -0
  29. package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts +13 -0
  30. package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +58 -0
  31. package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +1 -0
  32. package/dist/graphql/resolver-generators/query-all-resolver-generator.js +4 -1
  33. package/dist/graphql/resolver-generators/query-all-resolver-generator.js.map +1 -1
  34. package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js +2 -1
  35. package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js.map +1 -1
  36. package/dist/graphql/resolver-generators/union-type-resolver-generator.d.ts +4 -4
  37. package/dist/graphql/resolver-generators/union-type-resolver-generator.js +3 -3
  38. package/dist/graphql/resolver-generators/union-type-resolver-generator.js.map +1 -1
  39. package/dist/graphql/schema-analyzer.service.d.ts +1 -9
  40. package/dist/graphql/schema-analyzer.service.js +6 -17
  41. package/dist/graphql/schema-analyzer.service.js.map +1 -1
  42. package/dist/graphql/schema-generator.service.d.ts +3 -5
  43. package/dist/graphql/schema-generator.service.js +7 -12
  44. package/dist/graphql/schema-generator.service.js.map +1 -1
  45. package/dist/graphql/schema-utils/entry-reference-util.d.ts +12 -4
  46. package/dist/graphql/schema-utils/entry-reference-util.js +105 -21
  47. package/dist/graphql/schema-utils/entry-reference-util.js.map +1 -1
  48. package/dist/graphql/schema-utils/entry-type-util.d.ts +6 -0
  49. package/dist/graphql/schema-utils/entry-type-util.js +34 -0
  50. package/dist/graphql/schema-utils/entry-type-util.js.map +1 -0
  51. package/dist/graphql/schema-utils/union-type-util.d.ts +5 -0
  52. package/dist/graphql/schema-utils/union-type-util.js +21 -0
  53. package/dist/graphql/schema-utils/union-type-util.js.map +1 -0
  54. package/dist/persistence/persistence.service.d.ts +4 -7
  55. package/dist/persistence/persistence.service.js +18 -83
  56. package/dist/persistence/persistence.service.js.map +1 -1
  57. package/dist/tsconfig.build.tsbuildinfo +1 -1
  58. package/package.json +2 -2
  59. package/src/container.ts +29 -15
  60. package/src/graphql/field-resolver/entry-reference-resolver.ts +49 -0
  61. package/src/graphql/field-resolver/field-default-value-resolver.ts +154 -0
  62. package/src/graphql/field-resolver/fieldResolver.ts +19 -0
  63. package/src/graphql/field-resolver/union-value-resolver.ts +46 -0
  64. package/src/graphql/input-type-generator.service.ts +22 -8
  65. package/src/graphql/queries-mutations-generator.service.ts +1 -1
  66. package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +78 -13
  67. package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +69 -21
  68. package/src/graphql/resolver-generators/mutation-update-resolver-generator.ts +131 -0
  69. package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts +119 -0
  70. package/src/graphql/resolver-generators/query-all-resolver-generator.ts +5 -1
  71. package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +3 -1
  72. package/src/graphql/resolver-generators/union-type-resolver-generator.ts +5 -7
  73. package/src/graphql/schema-analyzer.service.ts +10 -24
  74. package/src/graphql/schema-generator.service.ts +11 -20
  75. package/src/graphql/schema-utils/entry-reference-util.ts +170 -30
  76. package/src/graphql/schema-utils/entry-type-util.ts +42 -0
  77. package/src/graphql/schema-utils/union-type-util.ts +23 -0
  78. package/src/persistence/persistence.service.ts +33 -132
  79. package/dist/graphql/resolver-generators/entry-reference-resolver.generator.d.ts +0 -12
  80. package/dist/graphql/resolver-generators/entry-reference-resolver.generator.js +0 -29
  81. package/dist/graphql/resolver-generators/entry-reference-resolver.generator.js.map +0 -1
  82. package/dist/graphql/resolver-generators/mutation-update.resolver-generator.js +0 -29
  83. package/dist/graphql/resolver-generators/mutation-update.resolver-generator.js.map +0 -1
  84. package/dist/graphql/resolver-generators/union-value-resolver-generator.d.ts +0 -13
  85. package/dist/graphql/resolver-generators/union-value-resolver-generator.js +0 -80
  86. package/dist/graphql/resolver-generators/union-value-resolver-generator.js.map +0 -1
  87. package/src/graphql/resolver-generators/entry-reference-resolver.generator.ts +0 -71
  88. package/src/graphql/resolver-generators/mutation-update.resolver-generator.ts +0 -59
  89. package/src/graphql/resolver-generators/union-value-resolver-generator.ts +0 -125
@@ -0,0 +1,131 @@
1
+ import {
2
+ Entry,
3
+ PersistenceService,
4
+ } from '../../persistence/persistence.service'
5
+ import { GraphQLFieldResolver } from 'graphql/type/definition'
6
+ import { ApolloContext } from '../../app/api.service'
7
+ import { EntryReferenceUtil } from '../schema-utils/entry-reference-util'
8
+ import { isObjectType } from 'graphql'
9
+ import { ContentEntryData, ContentEntryDraft } from '@commitspark/git-adapter'
10
+
11
+ export class MutationUpdateResolverGenerator {
12
+ constructor(
13
+ private readonly persistence: PersistenceService,
14
+ private readonly entryReferenceUtil: EntryReferenceUtil,
15
+ ) {}
16
+
17
+ public createResolver(
18
+ typeName: string,
19
+ ): GraphQLFieldResolver<any, ApolloContext, any, Promise<Entry>> {
20
+ return async (
21
+ source,
22
+ args,
23
+ context: ApolloContext,
24
+ info,
25
+ ): Promise<Entry> => {
26
+ if (!isObjectType(info.returnType)) {
27
+ throw new Error('Expected to update an ObjectType')
28
+ }
29
+
30
+ const existingEntry = await this.persistence.findByTypeId(
31
+ context.gitAdapter,
32
+ context.getCurrentRef(),
33
+ typeName,
34
+ args.id,
35
+ )
36
+
37
+ const existingReferencedEntryIds =
38
+ await this.entryReferenceUtil.getReferencedEntryIds(
39
+ info.returnType,
40
+ context,
41
+ null,
42
+ info.returnType,
43
+ existingEntry.data,
44
+ )
45
+
46
+ const mergedData = this.mergeData(existingEntry.data ?? null, args.data)
47
+ const updatedReferencedEntryIds =
48
+ await this.entryReferenceUtil.getReferencedEntryIds(
49
+ info.returnType,
50
+ context,
51
+ null,
52
+ info.returnType,
53
+ mergedData,
54
+ )
55
+
56
+ const noLongerReferencedIds = existingReferencedEntryIds.filter(
57
+ (entryId) => !updatedReferencedEntryIds.includes(entryId),
58
+ )
59
+ const newlyReferencedIds = updatedReferencedEntryIds.filter(
60
+ (entryId) => !existingReferencedEntryIds.includes(entryId),
61
+ )
62
+
63
+ const referencedEntryUpdates: ContentEntryDraft[] = []
64
+ for (const noLongerReferencedEntryId of noLongerReferencedIds) {
65
+ const noLongerReferencedEntry = await this.persistence.findById(
66
+ context.gitAdapter,
67
+ context.getCurrentRef(),
68
+ noLongerReferencedEntryId,
69
+ )
70
+ referencedEntryUpdates.push({
71
+ ...noLongerReferencedEntry,
72
+ metadata: {
73
+ ...noLongerReferencedEntry.metadata,
74
+ referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
75
+ (entryId) => entryId !== args.id,
76
+ ),
77
+ },
78
+ deletion: false,
79
+ })
80
+ }
81
+ for (const newlyReferencedEntryId of newlyReferencedIds) {
82
+ const newlyReferencedEntry = await this.persistence.findById(
83
+ context.gitAdapter,
84
+ context.getCurrentRef(),
85
+ newlyReferencedEntryId,
86
+ )
87
+ const updatedReferenceList: string[] =
88
+ newlyReferencedEntry.metadata.referencedBy ?? []
89
+ updatedReferenceList.push(args.id)
90
+ updatedReferenceList.sort()
91
+ referencedEntryUpdates.push({
92
+ ...newlyReferencedEntry,
93
+ metadata: {
94
+ ...newlyReferencedEntry.metadata,
95
+ referencedBy: updatedReferenceList,
96
+ },
97
+ deletion: false,
98
+ })
99
+ }
100
+
101
+ const commit = await context.gitAdapter.createCommit({
102
+ ref: context.branch,
103
+ parentSha: context.getCurrentRef(),
104
+ contentEntries: [
105
+ { ...existingEntry, data: mergedData, deletion: false },
106
+ ...referencedEntryUpdates,
107
+ ],
108
+ message: args.message,
109
+ })
110
+ context.setCurrentRef(commit.ref)
111
+
112
+ const updatedEntry = await this.persistence.findByTypeId(
113
+ context.gitAdapter,
114
+ context.getCurrentRef(),
115
+ typeName,
116
+ args.id,
117
+ )
118
+ return { ...updatedEntry.data, id: updatedEntry.id }
119
+ }
120
+ }
121
+
122
+ private mergeData(
123
+ existingEntryData: ContentEntryData,
124
+ updateData: ContentEntryData,
125
+ ): ContentEntryData {
126
+ return {
127
+ ...existingEntryData,
128
+ ...updateData,
129
+ }
130
+ }
131
+ }
@@ -0,0 +1,119 @@
1
+ import {
2
+ GraphQLFieldResolver,
3
+ GraphQLOutputType,
4
+ } from 'graphql/type/definition'
5
+ import { ApolloContext } from '../../app/api.service'
6
+ import { Entry } from '../../persistence/persistence.service'
7
+ import {
8
+ GraphQLField,
9
+ GraphQLObjectType,
10
+ GraphQLSchema,
11
+ isListType,
12
+ isNonNullType,
13
+ isObjectType,
14
+ isUnionType,
15
+ } from 'graphql'
16
+ import { ResolvedEntryData } from '../field-resolver/fieldResolver'
17
+ import { FieldDefaultValueResolver } from '../field-resolver/field-default-value-resolver'
18
+
19
+ export class ObjectTypeFieldDefaultValueResolverGenerator {
20
+ constructor(
21
+ private readonly fieldDefaultValueResolver: FieldDefaultValueResolver,
22
+ ) {}
23
+
24
+ public createResolver(
25
+ schema: GraphQLSchema,
26
+ ): Record<
27
+ string,
28
+ Record<
29
+ string,
30
+ GraphQLFieldResolver<
31
+ any,
32
+ ApolloContext,
33
+ any,
34
+ Promise<ResolvedEntryData<Entry | Entry[] | null>>
35
+ >
36
+ >
37
+ > {
38
+ const resolvers: Record<
39
+ string,
40
+ Record<
41
+ string,
42
+ GraphQLFieldResolver<
43
+ any,
44
+ ApolloContext,
45
+ any,
46
+ Promise<ResolvedEntryData<Entry | Entry[] | null>>
47
+ >
48
+ >
49
+ > = {}
50
+ for (const typeName of Object.keys(schema.getTypeMap())) {
51
+ const type = schema.getType(typeName)
52
+ if (!isObjectType(type) || type.name.startsWith('__')) {
53
+ continue
54
+ }
55
+ const objectType = type as GraphQLObjectType
56
+ const fieldsForCustomDefaultValueResolver =
57
+ this.getFieldsForCustomDefaultValueResolver(objectType)
58
+
59
+ const fieldResolvers: Record<
60
+ string,
61
+ GraphQLFieldResolver<
62
+ any,
63
+ ApolloContext,
64
+ any,
65
+ Promise<ResolvedEntryData<Entry | Entry[] | null>>
66
+ >
67
+ > = {}
68
+ for (const field of fieldsForCustomDefaultValueResolver) {
69
+ fieldResolvers[field.name] = (
70
+ obj,
71
+ args,
72
+ context,
73
+ info,
74
+ ): Promise<ResolvedEntryData<Entry | Entry[] | null>> =>
75
+ this.fieldDefaultValueResolver.resolve(
76
+ field.name in obj ? obj[field.name] : undefined,
77
+ args,
78
+ {
79
+ gitAdapter: context.gitAdapter,
80
+ getCurrentRef: context.getCurrentRef,
81
+ },
82
+ info,
83
+ )
84
+ }
85
+
86
+ if (Object.keys(fieldResolvers).length > 0) {
87
+ resolvers[typeName] = fieldResolvers
88
+ }
89
+ }
90
+
91
+ return resolvers
92
+ }
93
+
94
+ private getFieldsForCustomDefaultValueResolver(
95
+ objectType: GraphQLObjectType,
96
+ ): GraphQLField<any, any>[] {
97
+ const fields = []
98
+ for (const fieldsKey in objectType.getFields()) {
99
+ const field: GraphQLField<any, any> = objectType.getFields()[fieldsKey]
100
+ if (this.requiresCustomDefaultValueResolver(field.type)) {
101
+ fields.push(field)
102
+ }
103
+ }
104
+ return fields
105
+ }
106
+
107
+ private requiresCustomDefaultValueResolver(type: GraphQLOutputType): boolean {
108
+ if (isNonNullType(type)) {
109
+ return this.requiresCustomDefaultValueResolver(type.ofType)
110
+ } else if (isListType(type)) {
111
+ return true
112
+ } else if (isUnionType(type)) {
113
+ return true
114
+ } else if (isObjectType(type)) {
115
+ return true
116
+ }
117
+ return false
118
+ }
119
+ }
@@ -17,11 +17,15 @@ export class QueryAllResolverGenerator {
17
17
  context: ApolloContext,
18
18
  info,
19
19
  ): Promise<Entry[]> => {
20
- return this.persistence.findByType(
20
+ const entries = await this.persistence.findByType(
21
21
  context.gitAdapter,
22
22
  context.getCurrentRef(),
23
23
  typeName,
24
24
  )
25
+
26
+ return entries.map((entry) => {
27
+ return { ...entry.data, id: entry.id }
28
+ })
25
29
  }
26
30
  }
27
31
  }
@@ -12,12 +12,14 @@ export class QueryByIdResolverGenerator {
12
12
  typeName: string,
13
13
  ): GraphQLFieldResolver<any, ApolloContext, any, Promise<Entry>> {
14
14
  return async (obj, args, context, info): Promise<Entry> => {
15
- return this.persistence.findByTypeId(
15
+ const entry = await this.persistence.findByTypeId(
16
16
  context.gitAdapter,
17
17
  context.getCurrentRef(),
18
18
  typeName,
19
19
  args.id,
20
20
  )
21
+
22
+ return { ...entry.data, id: entry.id }
21
23
  }
22
24
  }
23
25
  }
@@ -4,13 +4,13 @@ import {
4
4
  GraphQLAbstractType,
5
5
  GraphQLResolveInfo,
6
6
  GraphQLTypeResolver,
7
- } from 'graphql/type/definition'
8
- import { EntryReferenceUtil } from '../schema-utils/entry-reference-util'
7
+ } from 'graphql'
8
+ import { EntryTypeUtil } from '../schema-utils/entry-type-util'
9
9
 
10
10
  export class UnionTypeResolverGenerator {
11
11
  constructor(
12
12
  private readonly persistence: PersistenceService,
13
- private readonly entryReferenceUtil: EntryReferenceUtil,
13
+ private readonly entryTypeUtil: EntryTypeUtil,
14
14
  ) {}
15
15
 
16
16
  public createResolver(): GraphQLTypeResolver<any, ApolloContext> {
@@ -20,9 +20,7 @@ export class UnionTypeResolverGenerator {
20
20
  info: GraphQLResolveInfo,
21
21
  abstractType: GraphQLAbstractType,
22
22
  ): Promise<string> => {
23
- if (
24
- this.entryReferenceUtil.buildsOnTypeWithEntryDirective(abstractType)
25
- ) {
23
+ if (this.entryTypeUtil.buildsOnTypeWithEntryDirective(abstractType)) {
26
24
  return this.persistence.getTypeById(
27
25
  context.gitAdapter,
28
26
  context.getCurrentRef(),
@@ -30,7 +28,7 @@ export class UnionTypeResolverGenerator {
30
28
  )
31
29
  } else {
32
30
  // We have injected an internal `__typename` field into the data of fields pointing to a non-entry union
33
- // in UnionValueResolverGenerator. This artificial field holds the type information we need here.
31
+ // in UnionValueResolver. This artificial field holds the type information we need here.
34
32
  return obj.__typename
35
33
  }
36
34
 
@@ -1,20 +1,20 @@
1
- import { GraphQLField, GraphQLObjectType, GraphQLSchema } from 'graphql'
1
+ import {
2
+ GraphQLObjectType,
3
+ GraphQLSchema,
4
+ isInterfaceType,
5
+ isObjectType,
6
+ isUnionType,
7
+ } from 'graphql'
2
8
  import { getDirective } from '@graphql-tools/utils'
3
9
  import { GraphQLInterfaceType, GraphQLUnionType } from 'graphql/type/definition'
4
- import { Kind } from 'graphql/language/kinds'
5
- import { ApolloContext } from '../app/api.service'
6
- import { EntryReferenceUtil } from './schema-utils/entry-reference-util'
7
10
 
8
11
  export class SchemaAnalyzerService {
9
- constructor(private readonly entryReferenceUtil: EntryReferenceUtil) {}
10
-
11
12
  public analyzeSchema(schema: GraphQLSchema): ISchemaAnalyzerResult {
12
13
  const result: ISchemaAnalyzerResult = {
13
14
  entryDirectiveTypes: [],
14
15
  objectTypes: [],
15
16
  interfaceTypes: [],
16
17
  unionTypes: [],
17
- typesWithEntryReferences: [],
18
18
  }
19
19
 
20
20
  const typeMap = schema.getTypeMap()
@@ -24,31 +24,21 @@ export class SchemaAnalyzerService {
24
24
  continue
25
25
  }
26
26
 
27
- if (type.astNode?.kind === Kind.OBJECT_TYPE_DEFINITION) {
27
+ if (isObjectType(type)) {
28
28
  const objectType = type as GraphQLObjectType
29
29
  result.objectTypes.push(objectType)
30
30
  const entityDirective = getDirective(schema, objectType, 'Entry')?.[0]
31
31
  if (entityDirective) {
32
32
  result.entryDirectiveTypes.push(objectType)
33
33
  }
34
- const fieldsWithEntryReference =
35
- this.entryReferenceUtil.getFieldsWithReferenceToTypeWithEntryDirective(
36
- objectType,
37
- )
38
- if (fieldsWithEntryReference.length > 0) {
39
- result.typesWithEntryReferences.push({
40
- type: objectType,
41
- fields: fieldsWithEntryReference,
42
- })
43
- }
44
34
  }
45
35
 
46
- if (type.astNode?.kind === Kind.INTERFACE_TYPE_DEFINITION) {
36
+ if (isInterfaceType(type)) {
47
37
  const interfaceType = type as GraphQLInterfaceType
48
38
  result.interfaceTypes.push(interfaceType)
49
39
  }
50
40
 
51
- if (type.astNode?.kind === Kind.UNION_TYPE_DEFINITION) {
41
+ if (isUnionType(type)) {
52
42
  const unionType = type as GraphQLUnionType
53
43
  result.unionTypes.push(unionType)
54
44
  }
@@ -63,8 +53,4 @@ export interface ISchemaAnalyzerResult {
63
53
  objectTypes: GraphQLObjectType[]
64
54
  interfaceTypes: GraphQLInterfaceType[]
65
55
  unionTypes: GraphQLUnionType[]
66
- typesWithEntryReferences: {
67
- type: GraphQLObjectType<any, ApolloContext>
68
- fields: GraphQLField<any, ApolloContext>[]
69
- }[]
70
56
  }
@@ -1,7 +1,4 @@
1
- import {
2
- IGeneratedSchema,
3
- QueriesMutationsGeneratorService,
4
- } from './queries-mutations-generator.service'
1
+ import { QueriesMutationsGeneratorService } from './queries-mutations-generator.service'
5
2
  import {
6
3
  IExecutableSchemaDefinition,
7
4
  makeExecutableSchema,
@@ -10,7 +7,6 @@ import { SchemaAnalyzerService } from './schema-analyzer.service'
10
7
  import { InputTypeGeneratorService } from './input-type-generator.service'
11
8
  import { SchemaRootTypeGeneratorService } from './schema-root-type-generator.service'
12
9
  import { printSchemaWithDirectives } from '@graphql-tools/utils'
13
- import { EntryReferenceResolverGenerator } from './resolver-generators/entry-reference-resolver.generator'
14
10
  import { UnionTypeResolverGenerator } from './resolver-generators/union-type-resolver-generator'
15
11
  import { ApolloContext } from '../app/api.service'
16
12
  import {
@@ -19,7 +15,7 @@ import {
19
15
  } from 'graphql/type/definition'
20
16
  import { SchemaValidator } from './schema-validator'
21
17
  import { Entry } from '../persistence/persistence.service'
22
- import { UnionValueResolverGenerator } from './resolver-generators/union-value-resolver-generator'
18
+ import { ObjectTypeFieldDefaultValueResolverGenerator } from './resolver-generators/object-type-field-default-value-resolver-generator'
23
19
 
24
20
  export class SchemaGeneratorService {
25
21
  constructor(
@@ -27,9 +23,8 @@ export class SchemaGeneratorService {
27
23
  private readonly schemaAnalyzer: SchemaAnalyzerService,
28
24
  private readonly inputTypeGenerator: InputTypeGeneratorService,
29
25
  private readonly schemaRootTypeGenerator: SchemaRootTypeGeneratorService,
30
- private readonly entryReferenceResolverGenerator: EntryReferenceResolverGenerator,
31
26
  private readonly unionTypeResolverGenerator: UnionTypeResolverGenerator,
32
- private readonly unionValueResolverGenerator: UnionValueResolverGenerator,
27
+ private readonly objectTypeFieldDefaultValueResolverGenerator: ObjectTypeFieldDefaultValueResolverGenerator,
33
28
  private readonly schemaValidator: SchemaValidator,
34
29
  ) {}
35
30
 
@@ -74,10 +69,6 @@ export class SchemaGeneratorService {
74
69
  >
75
70
  >
76
71
  > = {}
77
- for (const type of schemaAnalyzerResult.typesWithEntryReferences) {
78
- generatedEntryReferenceResolvers[type.type.name] =
79
- this.entryReferenceResolverGenerator.createResolver(context, type)
80
- }
81
72
 
82
73
  const generatedObjectInputTypeStrings =
83
74
  this.inputTypeGenerator.generateObjectInputTypeStrings(
@@ -112,8 +103,8 @@ export class SchemaGeneratorService {
112
103
  __resolveType: this.unionTypeResolverGenerator.createResolver(),
113
104
  }
114
105
  }
115
- const generatedUnionValueResolvers =
116
- this.unionValueResolverGenerator.createResolver(schema)
106
+ const generatedObjectTypeFieldDefaultValueResolvers =
107
+ this.objectTypeFieldDefaultValueResolverGenerator.createResolver(schema)
117
108
 
118
109
  const generatedQueryResolvers: Record<
119
110
  string,
@@ -124,9 +115,7 @@ export class SchemaGeneratorService {
124
115
  GraphQLFieldResolver<any, ApolloContext>
125
116
  > = {}
126
117
 
127
- generatedQueriesMutations.forEach(function (
128
- element: IGeneratedSchema,
129
- ): void {
118
+ for (const element of generatedQueriesMutations) {
130
119
  generatedQueryResolvers[element.queryAll.name] = element.queryAll.resolver
131
120
  generatedQueryResolvers[element.queryAllMeta.name] =
132
121
  element.queryAllMeta.resolver
@@ -138,7 +127,7 @@ export class SchemaGeneratorService {
138
127
  element.updateMutation.resolver
139
128
  generatedMutationResolvers[element.deleteMutation.name] =
140
129
  element.deleteMutation.resolver
141
- })
130
+ }
142
131
  generatedQueryResolvers[generatedTypeNameQuery.name] =
143
132
  generatedTypeNameQuery.resolver
144
133
 
@@ -160,10 +149,12 @@ export class SchemaGeneratorService {
160
149
  ...generatedUnionTypeResolvers[typeName],
161
150
  }
162
151
  }
163
- for (const typeName of Object.keys(generatedUnionValueResolvers)) {
152
+ for (const typeName of Object.keys(
153
+ generatedObjectTypeFieldDefaultValueResolvers,
154
+ )) {
164
155
  allGeneratedResolvers[typeName] = {
165
156
  ...(allGeneratedResolvers[typeName] ?? {}),
166
- ...generatedUnionValueResolvers[typeName],
157
+ ...generatedObjectTypeFieldDefaultValueResolvers[typeName],
167
158
  }
168
159
  }
169
160
  for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {