@payloadcms/graphql 3.24.0-canary.72057b1 → 3.24.0-canary.80e034e

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.
@@ -8,7 +8,7 @@ import { formatName } from '../utilities/formatName.js';
8
8
  import { formatOptions } from '../utilities/formatOptions.js';
9
9
  import { isFieldNullable } from './isFieldNullable.js';
10
10
  import { withNullableType } from './withNullableType.js';
11
- export function buildObjectType({ name, baseFields = {}, config, fields, forceNullable, graphqlResult, parentName }) {
11
+ export function buildObjectType({ name, baseFields = {}, config, fields, forceNullable, graphqlResult, parentIsLocalized, parentName }) {
12
12
  const fieldToSchemaMap = {
13
13
  array: (objectTypeConfig, field)=>{
14
14
  const interfaceName = field?.interfaceName || combineParentName(parentName, toWords(field.name, true));
@@ -17,8 +17,13 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
17
17
  name: interfaceName,
18
18
  config,
19
19
  fields: field.fields,
20
- forceNullable: isFieldNullable(field, forceNullable),
20
+ forceNullable: isFieldNullable({
21
+ field,
22
+ forceNullable,
23
+ parentIsLocalized
24
+ }),
21
25
  graphqlResult,
26
+ parentIsLocalized: field.localized || parentIsLocalized,
22
27
  parentName: interfaceName
23
28
  });
24
29
  if (Object.keys(objectType.getFields()).length) {
@@ -32,13 +37,20 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
32
37
  return {
33
38
  ...objectTypeConfig,
34
39
  [field.name]: {
35
- type: withNullableType(field, arrayType)
40
+ type: withNullableType({
41
+ type: arrayType,
42
+ field,
43
+ parentIsLocalized
44
+ })
36
45
  }
37
46
  };
38
47
  },
39
48
  blocks: (objectTypeConfig, field)=>{
40
- const blockTypes = field.blocks.reduce((acc, block)=>{
41
- if (!graphqlResult.types.blockTypes[block.slug]) {
49
+ const blockTypes = (field.blockReferences ?? field.blocks).reduce((acc, _block)=>{
50
+ const blockSlug = typeof _block === 'string' ? _block : _block.slug;
51
+ if (!graphqlResult.types.blockTypes[blockSlug]) {
52
+ // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks
53
+ const block = typeof _block === 'string' ? config.blocks.find((b)=>b.slug === _block) : _block;
42
54
  const interfaceName = block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true);
43
55
  const objectType = buildObjectType({
44
56
  name: interfaceName,
@@ -52,14 +64,15 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
52
64
  ],
53
65
  forceNullable,
54
66
  graphqlResult,
67
+ parentIsLocalized,
55
68
  parentName: interfaceName
56
69
  });
57
70
  if (Object.keys(objectType.getFields()).length) {
58
71
  graphqlResult.types.blockTypes[block.slug] = objectType;
59
72
  }
60
73
  }
61
- if (graphqlResult.types.blockTypes[block.slug]) {
62
- acc.push(graphqlResult.types.blockTypes[block.slug]);
74
+ if (graphqlResult.types.blockTypes[blockSlug]) {
75
+ acc.push(graphqlResult.types.blockTypes[blockSlug]);
63
76
  }
64
77
  return acc;
65
78
  }, []);
@@ -75,20 +88,34 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
75
88
  return {
76
89
  ...objectTypeConfig,
77
90
  [field.name]: {
78
- type: withNullableType(field, type)
91
+ type: withNullableType({
92
+ type,
93
+ field,
94
+ parentIsLocalized
95
+ })
79
96
  }
80
97
  };
81
98
  },
82
99
  checkbox: (objectTypeConfig, field)=>({
83
100
  ...objectTypeConfig,
84
101
  [field.name]: {
85
- type: withNullableType(field, GraphQLBoolean, forceNullable)
102
+ type: withNullableType({
103
+ type: GraphQLBoolean,
104
+ field,
105
+ forceNullable,
106
+ parentIsLocalized
107
+ })
86
108
  }
87
109
  }),
88
110
  code: (objectTypeConfig, field)=>({
89
111
  ...objectTypeConfig,
90
112
  [field.name]: {
91
- type: withNullableType(field, GraphQLString, forceNullable)
113
+ type: withNullableType({
114
+ type: GraphQLString,
115
+ field,
116
+ forceNullable,
117
+ parentIsLocalized
118
+ })
92
119
  }
93
120
  }),
94
121
  collapsible: (objectTypeConfig, field)=>field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField)=>{
@@ -101,13 +128,23 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
101
128
  date: (objectTypeConfig, field)=>({
102
129
  ...objectTypeConfig,
103
130
  [field.name]: {
104
- type: withNullableType(field, DateTimeResolver, forceNullable)
131
+ type: withNullableType({
132
+ type: DateTimeResolver,
133
+ field,
134
+ forceNullable,
135
+ parentIsLocalized
136
+ })
105
137
  }
106
138
  }),
107
139
  email: (objectTypeConfig, field)=>({
108
140
  ...objectTypeConfig,
109
141
  [field.name]: {
110
- type: withNullableType(field, EmailAddressResolver, forceNullable)
142
+ type: withNullableType({
143
+ type: EmailAddressResolver,
144
+ field,
145
+ forceNullable,
146
+ parentIsLocalized
147
+ })
111
148
  }
112
149
  }),
113
150
  group: (objectTypeConfig, field)=>{
@@ -117,8 +154,13 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
117
154
  name: interfaceName,
118
155
  config,
119
156
  fields: field.fields,
120
- forceNullable: isFieldNullable(field, forceNullable),
157
+ forceNullable: isFieldNullable({
158
+ field,
159
+ forceNullable,
160
+ parentIsLocalized
161
+ }),
121
162
  graphqlResult,
163
+ parentIsLocalized: field.localized || parentIsLocalized,
122
164
  parentName: interfaceName
123
165
  });
124
166
  if (Object.keys(objectType.getFields()).length) {
@@ -148,7 +190,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
148
190
  name: joinName,
149
191
  fields: {
150
192
  docs: {
151
- type: new GraphQLList(graphqlResult.collections[field.collection].graphQL.type)
193
+ type: Array.isArray(field.collection) ? GraphQLJSON : new GraphQLList(graphqlResult.collections[field.collection].graphQL.type)
152
194
  },
153
195
  hasNextPage: {
154
196
  type: GraphQLBoolean
@@ -159,11 +201,14 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
159
201
  limit: {
160
202
  type: GraphQLInt
161
203
  },
204
+ page: {
205
+ type: GraphQLInt
206
+ },
162
207
  sort: {
163
208
  type: GraphQLString
164
209
  },
165
210
  where: {
166
- type: graphqlResult.collections[field.collection].graphQL.whereInputType
211
+ type: Array.isArray(field.collection) ? GraphQLJSON : graphqlResult.collections[field.collection].graphQL.whereInputType
167
212
  }
168
213
  },
169
214
  extensions: {
@@ -171,13 +216,16 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
171
216
  },
172
217
  async resolve (parent, args, context) {
173
218
  const { collection } = field;
174
- const { limit, sort, where } = args;
219
+ const { limit, page, sort, where } = args;
175
220
  const { req } = context;
176
221
  const fullWhere = combineQueries(where, {
177
222
  [field.on]: {
178
223
  equals: parent._id ?? parent.id
179
224
  }
180
225
  });
226
+ if (Array.isArray(collection)) {
227
+ throw new Error('GraphQL with array of join.field.collection is not implemented');
228
+ }
181
229
  return await req.payload.find({
182
230
  collection,
183
231
  depth: 0,
@@ -185,6 +233,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
185
233
  limit,
186
234
  locale: req.locale,
187
235
  overrideAccess: false,
236
+ page,
188
237
  req,
189
238
  sort,
190
239
  where: fullWhere
@@ -199,7 +248,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
199
248
  json: (objectTypeConfig, field)=>({
200
249
  ...objectTypeConfig,
201
250
  [field.name]: {
202
- type: withNullableType(field, GraphQLJSON, forceNullable)
251
+ type: withNullableType({
252
+ type: GraphQLJSON,
253
+ field,
254
+ forceNullable,
255
+ parentIsLocalized
256
+ })
203
257
  }
204
258
  }),
205
259
  number: (objectTypeConfig, field)=>{
@@ -207,23 +261,38 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
207
261
  return {
208
262
  ...objectTypeConfig,
209
263
  [field.name]: {
210
- type: withNullableType(field, field?.hasMany === true ? new GraphQLList(type) : type, forceNullable)
264
+ type: withNullableType({
265
+ type: field?.hasMany === true ? new GraphQLList(type) : type,
266
+ field,
267
+ forceNullable,
268
+ parentIsLocalized
269
+ })
211
270
  }
212
271
  };
213
272
  },
214
273
  point: (objectTypeConfig, field)=>({
215
274
  ...objectTypeConfig,
216
275
  [field.name]: {
217
- type: withNullableType(field, new GraphQLList(new GraphQLNonNull(GraphQLFloat)), forceNullable)
276
+ type: withNullableType({
277
+ type: new GraphQLList(new GraphQLNonNull(GraphQLFloat)),
278
+ field,
279
+ forceNullable,
280
+ parentIsLocalized
281
+ })
218
282
  }
219
283
  }),
220
284
  radio: (objectTypeConfig, field)=>({
221
285
  ...objectTypeConfig,
222
286
  [field.name]: {
223
- type: withNullableType(field, new GraphQLEnumType({
224
- name: combineParentName(parentName, field.name),
225
- values: formatOptions(field)
226
- }), forceNullable)
287
+ type: withNullableType({
288
+ type: new GraphQLEnumType({
289
+ name: combineParentName(parentName, field.name),
290
+ values: formatOptions(field)
291
+ }),
292
+ field,
293
+ forceNullable,
294
+ parentIsLocalized
295
+ })
227
296
  }
228
297
  }),
229
298
  relationship: (objectTypeConfig, field)=>{
@@ -290,7 +359,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
290
359
  };
291
360
  }
292
361
  const relationship = {
293
- type: withNullableType(field, hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type, forceNullable),
362
+ type: withNullableType({
363
+ type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,
364
+ field,
365
+ forceNullable,
366
+ parentIsLocalized
367
+ }),
294
368
  args: relationshipArgs,
295
369
  extensions: {
296
370
  complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10
@@ -393,7 +467,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
393
467
  richText: (objectTypeConfig, field)=>({
394
468
  ...objectTypeConfig,
395
469
  [field.name]: {
396
- type: withNullableType(field, GraphQLJSON, forceNullable),
470
+ type: withNullableType({
471
+ type: GraphQLJSON,
472
+ field,
473
+ forceNullable,
474
+ parentIsLocalized
475
+ }),
397
476
  args: {
398
477
  depth: {
399
478
  type: GraphQLInt
@@ -430,6 +509,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
430
509
  findMany: false,
431
510
  flattenLocales: false,
432
511
  overrideAccess: false,
512
+ parentIsLocalized,
433
513
  populationPromises,
434
514
  req: context.req,
435
515
  showHiddenFields: false,
@@ -456,7 +536,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
456
536
  values: formatOptions(field)
457
537
  });
458
538
  type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type;
459
- type = withNullableType(field, type, forceNullable);
539
+ type = withNullableType({
540
+ type,
541
+ field,
542
+ forceNullable,
543
+ parentIsLocalized
544
+ });
460
545
  return {
461
546
  ...objectTypeConfig,
462
547
  [field.name]: {
@@ -474,6 +559,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
474
559
  fields: tab.fields,
475
560
  forceNullable,
476
561
  graphqlResult,
562
+ parentIsLocalized: tab.localized || parentIsLocalized,
477
563
  parentName: interfaceName
478
564
  });
479
565
  if (Object.keys(objectType.getFields()).length) {
@@ -510,13 +596,23 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
510
596
  text: (objectTypeConfig, field)=>({
511
597
  ...objectTypeConfig,
512
598
  [field.name]: {
513
- type: withNullableType(field, field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString, forceNullable)
599
+ type: withNullableType({
600
+ type: field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,
601
+ field,
602
+ forceNullable,
603
+ parentIsLocalized
604
+ })
514
605
  }
515
606
  }),
516
607
  textarea: (objectTypeConfig, field)=>({
517
608
  ...objectTypeConfig,
518
609
  [field.name]: {
519
- type: withNullableType(field, GraphQLString, forceNullable)
610
+ type: withNullableType({
611
+ type: GraphQLString,
612
+ field,
613
+ forceNullable,
614
+ parentIsLocalized
615
+ })
520
616
  }
521
617
  }),
522
618
  upload: (objectTypeConfig, field)=>{
@@ -581,7 +677,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
581
677
  };
582
678
  }
583
679
  const relationship = {
584
- type: withNullableType(field, hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type, forceNullable),
680
+ type: withNullableType({
681
+ type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,
682
+ field,
683
+ forceNullable,
684
+ parentIsLocalized
685
+ }),
585
686
  args: relationshipArgs,
586
687
  extensions: {
587
688
  complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["import type { GraphQLFieldConfig, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JoinField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { combineQueries, createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload'\nimport { tabHasName } from 'payload/shared'\n\nimport type { Context } from '../resolvers/types.js'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { formatOptions } from '../utilities/formatOptions.js'\nimport { isFieldNullable } from './isFieldNullable.js'\nimport { withNullableType } from './withNullableType.js'\n\nexport type ObjectTypeConfig = {\n [path: string]: GraphQLFieldConfig<any, any>\n}\n\ntype Args = {\n baseFields?: ObjectTypeConfig\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentName: string\n}\n\nexport function buildObjectType({\n name,\n baseFields = {},\n config,\n fields,\n forceNullable,\n graphqlResult,\n parentName,\n}: Args): GraphQLObjectType {\n const fieldToSchemaMap = {\n array: (objectTypeConfig: ObjectTypeConfig, field: ArrayField) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable(field, forceNullable),\n graphqlResult,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.arrayTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n const arrayType = new GraphQLList(\n new GraphQLNonNull(graphqlResult.types.arrayTypes[interfaceName]),\n )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, arrayType) },\n }\n },\n blocks: (objectTypeConfig: ObjectTypeConfig, field: BlocksField) => {\n const blockTypes: GraphQLObjectType<any, any>[] = field.blocks.reduce((acc, block) => {\n if (!graphqlResult.types.blockTypes[block.slug]) {\n const interfaceName =\n block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true)\n\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: [\n ...block.fields,\n {\n name: 'blockType',\n type: 'text',\n },\n ],\n forceNullable,\n graphqlResult,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.blockTypes[block.slug] = objectType\n }\n }\n\n if (graphqlResult.types.blockTypes[block.slug]) {\n acc.push(graphqlResult.types.blockTypes[block.slug])\n }\n\n return acc\n }, [])\n\n if (blockTypes.length === 0) {\n return objectTypeConfig\n }\n\n const fullName = combineParentName(parentName, toWords(field.name, true))\n\n const type = new GraphQLList(\n new GraphQLNonNull(\n new GraphQLUnionType({\n name: fullName,\n resolveType: (data) => graphqlResult.types.blockTypes[data.blockType].name,\n types: blockTypes,\n }),\n ),\n )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, type) },\n }\n },\n checkbox: (objectTypeConfig: ObjectTypeConfig, field: CheckboxField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLBoolean, forceNullable) },\n }),\n code: (objectTypeConfig: ObjectTypeConfig, field: CodeField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n collapsible: (objectTypeConfig: ObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithCollapsibleFields, subField)\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig),\n date: (objectTypeConfig: ObjectTypeConfig, field: DateField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, DateTimeResolver, forceNullable) },\n }),\n email: (objectTypeConfig: ObjectTypeConfig, field: EmailField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, EmailAddressResolver, forceNullable) },\n }),\n group: (objectTypeConfig: ObjectTypeConfig, field: GroupField) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable(field, forceNullable),\n graphqlResult,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve: (parent, args, context: Context) => {\n return {\n ...parent[field.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n },\n join: (objectTypeConfig: ObjectTypeConfig, field: JoinField) => {\n const joinName = combineParentName(parentName, toWords(field.name, true))\n\n const joinType = {\n type: new GraphQLObjectType({\n name: joinName,\n fields: {\n docs: {\n type: new GraphQLList(graphqlResult.collections[field.collection].graphQL.type),\n },\n hasNextPage: { type: GraphQLBoolean },\n },\n }),\n args: {\n limit: {\n type: GraphQLInt,\n },\n sort: {\n type: GraphQLString,\n },\n where: {\n type: graphqlResult.collections[field.collection].graphQL.whereInputType,\n },\n },\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const { collection } = field\n const { limit, sort, where } = args\n const { req } = context\n\n const fullWhere = combineQueries(where, {\n [field.on]: { equals: parent._id ?? parent.id },\n })\n\n return await req.payload.find({\n collection,\n depth: 0,\n fallbackLocale: req.fallbackLocale,\n limit,\n locale: req.locale,\n overrideAccess: false,\n req,\n sort,\n where: fullWhere,\n })\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: joinType,\n }\n },\n json: (objectTypeConfig: ObjectTypeConfig, field: JSONField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLJSON, forceNullable) },\n }),\n number: (objectTypeConfig: ObjectTypeConfig, field: NumberField) => {\n const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field?.hasMany === true ? new GraphQLList(type) : type,\n forceNullable,\n ),\n },\n }\n },\n point: (objectTypeConfig: ObjectTypeConfig, field: PointField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n new GraphQLList(new GraphQLNonNull(GraphQLFloat)),\n forceNullable,\n ),\n },\n }),\n radio: (objectTypeConfig: ObjectTypeConfig, field: RadioField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n new GraphQLEnumType({\n name: combineParentName(parentName, field.name),\n values: formatOptions(field),\n }),\n forceNullable,\n ),\n },\n }),\n relationship: (objectTypeConfig: ObjectTypeConfig, field: RelationshipField) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n const graphQLCollections = config.collections.filter(\n (collectionConfig) => collectionConfig.graphQL !== false,\n )\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n // Only pass collections that are GraphQL enabled\n const types = relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .map((relation) => graphqlResult.collections[relation]?.graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo])\n .filter((relation) => graphQLCollections.some((collection) => collection.slug === relation))\n .some((relation) => graphqlResult.collections[relation].config.versions?.drafts)\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship = {\n type: withNullableType(\n field,\n hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n forceNullable,\n ),\n args: relationshipArgs,\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\n }\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n if (\n graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)\n ) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n richText: (objectTypeConfig: ObjectTypeConfig, field: RichTextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(field, GraphQLJSON, forceNullable),\n args: {\n depth: {\n type: GraphQLInt,\n },\n },\n async resolve(parent, args, context: Context) {\n let depth = config.defaultDepth\n if (typeof args.depth !== 'undefined') {\n depth = args.depth\n }\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n // RichText fields have their own depth argument in GraphQL.\n // This is why the populationPromise (which populates richtext fields like uploads and relationships)\n // is run here again, with the provided depth.\n // In the graphql find.ts resolver, the depth is then hard-coded to 0.\n // Effectively, this means that the populationPromise for GraphQL is only run here, and not in the find.ts resolver / normal population promise.\n if (editor?.graphQLPopulationPromises) {\n const fieldPromises = []\n const populationPromises = []\n const populateDepth =\n field?.maxDepth !== undefined && field?.maxDepth < depth ? field?.maxDepth : depth\n\n editor?.graphQLPopulationPromises({\n context,\n depth: populateDepth,\n draft: args.draft,\n field,\n fieldPromises,\n findMany: false,\n flattenLocales: false,\n overrideAccess: false,\n populationPromises,\n req: context.req,\n showHiddenFields: false,\n siblingDoc: parent,\n })\n await Promise.all(fieldPromises)\n await Promise.all(populationPromises)\n }\n\n return parent[field.name]\n },\n },\n }),\n row: (objectTypeConfig: ObjectTypeConfig, field: RowField) =>\n field.fields.reduce((objectTypeConfigWithRowFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithRowFields, subField)\n }\n return objectTypeConfigWithRowFields\n }, objectTypeConfig),\n select: (objectTypeConfig: ObjectTypeConfig, field: SelectField) => {\n const fullName = combineParentName(parentName, field.name)\n\n let type: GraphQLType = new GraphQLEnumType({\n name: fullName,\n values: formatOptions(field),\n })\n\n type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type\n type = withNullableType(field, type, forceNullable)\n\n return {\n ...objectTypeConfig,\n [field.name]: { type },\n }\n },\n tabs: (objectTypeConfig: ObjectTypeConfig, field: TabsField) =>\n field.tabs.reduce((tabSchema, tab) => {\n if (tabHasName(tab)) {\n const interfaceName =\n tab?.interfaceName || combineParentName(parentName, toWords(tab.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: tab.fields,\n forceNullable,\n graphqlResult,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return tabSchema\n }\n\n return {\n ...tabSchema,\n [tab.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve(parent, args, context: Context) {\n return {\n ...parent[tab.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n }\n\n return {\n ...tabSchema,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(subFieldSchema, subField)\n }\n return subFieldSchema\n }, tabSchema),\n }\n }, objectTypeConfig),\n text: (objectTypeConfig: ObjectTypeConfig, field: TextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n forceNullable,\n ),\n },\n }),\n textarea: (objectTypeConfig: ObjectTypeConfig, field: TextareaField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n upload: (objectTypeConfig: ObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo.reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n const types = relationTo.map((relation) => graphqlResult.collections[relation].graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo]).some(\n (relation) => graphqlResult.collections[relation].config.versions?.drafts,\n )\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship = {\n type: withNullableType(\n field,\n hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n forceNullable,\n ),\n args: relationshipArgs,\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n }\n\n const objectSchema = {\n name,\n fields: () =>\n fields.reduce((objectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n ...fieldSchema(objectTypeConfig, field),\n }\n }, baseFields),\n }\n\n const newlyCreatedBlockType = new GraphQLObjectType(objectSchema)\n\n return newlyCreatedBlockType\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLObjectType","GraphQLString","GraphQLUnionType","DateTimeResolver","EmailAddressResolver","combineQueries","createDataloaderCacheKey","MissingEditorProp","toWords","tabHasName","GraphQLJSON","combineParentName","formatName","formatOptions","isFieldNullable","withNullableType","buildObjectType","name","baseFields","config","fields","forceNullable","graphqlResult","parentName","fieldToSchemaMap","array","objectTypeConfig","field","interfaceName","types","arrayTypes","objectType","Object","keys","getFields","length","arrayType","type","blocks","blockTypes","reduce","acc","block","slug","graphQL","singularName","push","fullName","resolveType","data","blockType","checkbox","code","collapsible","objectTypeConfigWithCollapsibleFields","subField","addSubField","date","email","group","groupTypes","resolve","parent","args","context","_id","id","join","joinName","joinType","docs","collections","collection","hasNextPage","limit","sort","where","whereInputType","extensions","complexity","req","fullWhere","on","equals","payload","find","depth","fallbackLocale","locale","overrideAccess","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","Array","isArray","hasManyValues","relationshipName","relationToType","graphQLCollections","filter","collectionConfig","relation","some","relations","value","map","newlyCreatedBlockType","relationshipArgs","relationsUseDrafts","versions","drafts","draft","localization","localeInputType","fallbackLocaleInputType","relatedCollectionSlug","Boolean","query","results","resultPromises","createPopulationPromise","relatedDoc","i","collectionSlug","isValidGraphQLCollection","includes","result","payloadDataLoader","load","currentDepth","docID","showHiddenFields","transactionID","forEach","Promise","all","relatedDocument","richText","defaultDepth","editor","Error","graphQLPopulationPromises","fieldPromises","populationPromises","populateDepth","maxDepth","undefined","findMany","flattenLocales","siblingDoc","row","objectTypeConfigWithRowFields","select","tabs","tabSchema","tab","subFieldSchema","text","textarea","upload","objectSchema","fieldSchema"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["import type { GraphQLFieldConfig, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JoinField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { combineQueries, createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload'\nimport { tabHasName } from 'payload/shared'\n\nimport type { Context } from '../resolvers/types.js'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { formatOptions } from '../utilities/formatOptions.js'\nimport { isFieldNullable } from './isFieldNullable.js'\nimport { withNullableType } from './withNullableType.js'\n\nexport type ObjectTypeConfig = {\n [path: string]: GraphQLFieldConfig<any, any>\n}\n\ntype Args = {\n baseFields?: ObjectTypeConfig\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentIsLocalized?: boolean\n parentName: string\n}\n\nexport function buildObjectType({\n name,\n baseFields = {},\n config,\n fields,\n forceNullable,\n graphqlResult,\n parentIsLocalized,\n parentName,\n}: Args): GraphQLObjectType {\n const fieldToSchemaMap = {\n array: (objectTypeConfig: ObjectTypeConfig, field: ArrayField) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.arrayTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n const arrayType = new GraphQLList(\n new GraphQLNonNull(graphqlResult.types.arrayTypes[interfaceName]),\n )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType({ type: arrayType, field, parentIsLocalized }) },\n }\n },\n blocks: (objectTypeConfig: ObjectTypeConfig, field: BlocksField) => {\n const blockTypes: GraphQLObjectType<any, any>[] = (\n field.blockReferences ?? field.blocks\n ).reduce((acc, _block) => {\n const blockSlug = typeof _block === 'string' ? _block : _block.slug\n if (!graphqlResult.types.blockTypes[blockSlug]) {\n // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks\n const block =\n typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block\n\n const interfaceName =\n block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true)\n\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: [\n ...block.fields,\n {\n name: 'blockType',\n type: 'text',\n },\n ],\n forceNullable,\n graphqlResult,\n parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.blockTypes[block.slug] = objectType\n }\n }\n\n if (graphqlResult.types.blockTypes[blockSlug]) {\n acc.push(graphqlResult.types.blockTypes[blockSlug])\n }\n\n return acc\n }, [])\n\n if (blockTypes.length === 0) {\n return objectTypeConfig\n }\n\n const fullName = combineParentName(parentName, toWords(field.name, true))\n\n const type = new GraphQLList(\n new GraphQLNonNull(\n new GraphQLUnionType({\n name: fullName,\n resolveType: (data) => graphqlResult.types.blockTypes[data.blockType].name,\n types: blockTypes,\n }),\n ),\n )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType({ type, field, parentIsLocalized }) },\n }\n },\n checkbox: (objectTypeConfig: ObjectTypeConfig, field: CheckboxField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLBoolean, field, forceNullable, parentIsLocalized }),\n },\n }),\n code: (objectTypeConfig: ObjectTypeConfig, field: CodeField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n collapsible: (objectTypeConfig: ObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithCollapsibleFields, subField)\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig),\n date: (objectTypeConfig: ObjectTypeConfig, field: DateField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: DateTimeResolver, field, forceNullable, parentIsLocalized }),\n },\n }),\n email: (objectTypeConfig: ObjectTypeConfig, field: EmailField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: EmailAddressResolver,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n group: (objectTypeConfig: ObjectTypeConfig, field: GroupField) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve: (parent, args, context: Context) => {\n return {\n ...parent[field.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n },\n join: (objectTypeConfig: ObjectTypeConfig, field: JoinField) => {\n const joinName = combineParentName(parentName, toWords(field.name, true))\n\n const joinType = {\n type: new GraphQLObjectType({\n name: joinName,\n fields: {\n docs: {\n type: Array.isArray(field.collection)\n ? GraphQLJSON\n : new GraphQLList(graphqlResult.collections[field.collection].graphQL.type),\n },\n hasNextPage: { type: GraphQLBoolean },\n },\n }),\n args: {\n limit: {\n type: GraphQLInt,\n },\n page: {\n type: GraphQLInt,\n },\n sort: {\n type: GraphQLString,\n },\n where: {\n type: Array.isArray(field.collection)\n ? GraphQLJSON\n : graphqlResult.collections[field.collection].graphQL.whereInputType,\n },\n },\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const { collection } = field\n const { limit, page, sort, where } = args\n const { req } = context\n\n const fullWhere = combineQueries(where, {\n [field.on]: { equals: parent._id ?? parent.id },\n })\n\n if (Array.isArray(collection)) {\n throw new Error('GraphQL with array of join.field.collection is not implemented')\n }\n\n return await req.payload.find({\n collection,\n depth: 0,\n fallbackLocale: req.fallbackLocale,\n limit,\n locale: req.locale,\n overrideAccess: false,\n page,\n req,\n sort,\n where: fullWhere,\n })\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: joinType,\n }\n },\n json: (objectTypeConfig: ObjectTypeConfig, field: JSONField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n number: (objectTypeConfig: ObjectTypeConfig, field: NumberField) => {\n const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: field?.hasMany === true ? new GraphQLList(type) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }\n },\n point: (objectTypeConfig: ObjectTypeConfig, field: PointField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: new GraphQLList(new GraphQLNonNull(GraphQLFloat)),\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n radio: (objectTypeConfig: ObjectTypeConfig, field: RadioField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: new GraphQLEnumType({\n name: combineParentName(parentName, field.name),\n values: formatOptions(field),\n }),\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n relationship: (objectTypeConfig: ObjectTypeConfig, field: RelationshipField) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n const graphQLCollections = config.collections.filter(\n (collectionConfig) => collectionConfig.graphQL !== false,\n )\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n // Only pass collections that are GraphQL enabled\n const types = relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .map((relation) => graphqlResult.collections[relation]?.graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo])\n .filter((relation) => graphQLCollections.some((collection) => collection.slug === relation))\n .some((relation) => graphqlResult.collections[relation].config.versions?.drafts)\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n args: relationshipArgs,\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\n }\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n if (\n graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)\n ) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n richText: (objectTypeConfig: ObjectTypeConfig, field: RichTextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n args: {\n depth: {\n type: GraphQLInt,\n },\n },\n async resolve(parent, args, context: Context) {\n let depth = config.defaultDepth\n if (typeof args.depth !== 'undefined') {\n depth = args.depth\n }\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n // RichText fields have their own depth argument in GraphQL.\n // This is why the populationPromise (which populates richtext fields like uploads and relationships)\n // is run here again, with the provided depth.\n // In the graphql find.ts resolver, the depth is then hard-coded to 0.\n // Effectively, this means that the populationPromise for GraphQL is only run here, and not in the find.ts resolver / normal population promise.\n if (editor?.graphQLPopulationPromises) {\n const fieldPromises = []\n const populationPromises = []\n const populateDepth =\n field?.maxDepth !== undefined && field?.maxDepth < depth ? field?.maxDepth : depth\n\n editor?.graphQLPopulationPromises({\n context,\n depth: populateDepth,\n draft: args.draft,\n field,\n fieldPromises,\n findMany: false,\n flattenLocales: false,\n overrideAccess: false,\n parentIsLocalized,\n populationPromises,\n req: context.req,\n showHiddenFields: false,\n siblingDoc: parent,\n })\n await Promise.all(fieldPromises)\n await Promise.all(populationPromises)\n }\n\n return parent[field.name]\n },\n },\n }),\n row: (objectTypeConfig: ObjectTypeConfig, field: RowField) =>\n field.fields.reduce((objectTypeConfigWithRowFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithRowFields, subField)\n }\n return objectTypeConfigWithRowFields\n }, objectTypeConfig),\n select: (objectTypeConfig: ObjectTypeConfig, field: SelectField) => {\n const fullName = combineParentName(parentName, field.name)\n\n let type: GraphQLType = new GraphQLEnumType({\n name: fullName,\n values: formatOptions(field),\n })\n\n type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type\n type = withNullableType({ type, field, forceNullable, parentIsLocalized })\n\n return {\n ...objectTypeConfig,\n [field.name]: { type },\n }\n },\n tabs: (objectTypeConfig: ObjectTypeConfig, field: TabsField) =>\n field.tabs.reduce((tabSchema, tab) => {\n if (tabHasName(tab)) {\n const interfaceName =\n tab?.interfaceName || combineParentName(parentName, toWords(tab.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: tab.fields,\n forceNullable,\n graphqlResult,\n parentIsLocalized: tab.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return tabSchema\n }\n\n return {\n ...tabSchema,\n [tab.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve(parent, args, context: Context) {\n return {\n ...parent[tab.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n }\n\n return {\n ...tabSchema,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(subFieldSchema, subField)\n }\n return subFieldSchema\n }, tabSchema),\n }\n }, objectTypeConfig),\n text: (objectTypeConfig: ObjectTypeConfig, field: TextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n textarea: (objectTypeConfig: ObjectTypeConfig, field: TextareaField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n upload: (objectTypeConfig: ObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo.reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n const types = relationTo.map((relation) => graphqlResult.collections[relation].graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo]).some(\n (relation) => graphqlResult.collections[relation].config.versions?.drafts,\n )\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n args: relationshipArgs,\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n }\n\n const objectSchema = {\n name,\n fields: () =>\n fields.reduce((objectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n ...fieldSchema(objectTypeConfig, field),\n }\n }, baseFields),\n }\n\n const newlyCreatedBlockType = new GraphQLObjectType(objectSchema)\n\n return newlyCreatedBlockType\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLObjectType","GraphQLString","GraphQLUnionType","DateTimeResolver","EmailAddressResolver","combineQueries","createDataloaderCacheKey","MissingEditorProp","toWords","tabHasName","GraphQLJSON","combineParentName","formatName","formatOptions","isFieldNullable","withNullableType","buildObjectType","name","baseFields","config","fields","forceNullable","graphqlResult","parentIsLocalized","parentName","fieldToSchemaMap","array","objectTypeConfig","field","interfaceName","types","arrayTypes","objectType","localized","Object","keys","getFields","length","arrayType","type","blocks","blockTypes","blockReferences","reduce","acc","_block","blockSlug","slug","block","find","b","graphQL","singularName","push","fullName","resolveType","data","blockType","checkbox","code","collapsible","objectTypeConfigWithCollapsibleFields","subField","addSubField","date","email","group","groupTypes","resolve","parent","args","context","_id","id","join","joinName","joinType","docs","Array","isArray","collection","collections","hasNextPage","limit","page","sort","where","whereInputType","extensions","complexity","req","fullWhere","on","equals","Error","payload","depth","fallbackLocale","locale","overrideAccess","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","hasManyValues","relationshipName","relationToType","graphQLCollections","filter","collectionConfig","relation","some","relations","value","map","newlyCreatedBlockType","relationshipArgs","relationsUseDrafts","versions","drafts","draft","localization","localeInputType","fallbackLocaleInputType","relatedCollectionSlug","Boolean","query","results","resultPromises","createPopulationPromise","relatedDoc","i","collectionSlug","isValidGraphQLCollection","includes","result","payloadDataLoader","load","currentDepth","docID","showHiddenFields","transactionID","forEach","Promise","all","relatedDocument","richText","defaultDepth","editor","graphQLPopulationPromises","fieldPromises","populationPromises","populateDepth","maxDepth","undefined","findMany","flattenLocales","siblingDoc","row","objectTypeConfigWithRowFields","select","tabs","tabSchema","tab","subFieldSchema","text","textarea","upload","objectSchema","fieldSchema"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"initCollections.d.ts","sourceRoot":"","sources":["../../src/schema/initCollections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,eAAe,EAChB,MAAM,SAAS,CAAA;AAyChB,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;CAC3B,CAAA;AACD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,0BAA0B,GAAG,IAAI,CAsf3F"}
1
+ {"version":3,"file":"initCollections.d.ts","sourceRoot":"","sources":["../../src/schema/initCollections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,eAAe,EAChB,MAAM,SAAS,CAAA;AAyChB,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;CAC3B,CAAA;AACD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,0BAA0B,GAAG,IAAI,CAwf3F"}
@@ -102,6 +102,7 @@ export function initCollections({ config, graphqlResult }) {
102
102
  config,
103
103
  fields: mutationInputFields,
104
104
  graphqlResult,
105
+ parentIsLocalized: false,
105
106
  parentName: singularName
106
107
  });
107
108
  if (createMutationInputType) {
@@ -113,6 +114,7 @@ export function initCollections({ config, graphqlResult }) {
113
114
  fields: mutationInputFields.filter((field)=>!(fieldAffectsData(field) && field.name === 'id')),
114
115
  forceNullable: true,
115
116
  graphqlResult,
117
+ parentIsLocalized: false,
116
118
  parentName: `${singularName}Update`
117
119
  });
118
120
  if (updateMutationInputType) {