@payloadcms/graphql 3.0.0-canary.03427d3 → 3.0.0-canary.0374de4

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 (223) hide show
  1. package/bin.js +51 -2
  2. package/dist/bin/generateSchema.d.ts.map +1 -1
  3. package/dist/bin/generateSchema.js +1 -1
  4. package/dist/bin/generateSchema.js.map +1 -1
  5. package/dist/bin/index.js +2 -2
  6. package/dist/bin/index.js.map +1 -1
  7. package/dist/exports/types.d.ts +2 -0
  8. package/dist/exports/types.d.ts.map +1 -1
  9. package/dist/exports/types.js +2 -0
  10. package/dist/exports/types.js.map +1 -1
  11. package/dist/exports/utilities.js.map +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +9 -9
  14. package/dist/index.js.map +1 -1
  15. package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts +2 -2
  16. package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts.map +1 -1
  17. package/dist/packages/graphql-query-complexity/QueryComplexity.js +4 -4
  18. package/dist/packages/graphql-query-complexity/QueryComplexity.js.map +1 -1
  19. package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts +1 -1
  20. package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts.map +1 -1
  21. package/dist/packages/graphql-query-complexity/createComplexityRule.js +1 -1
  22. package/dist/packages/graphql-query-complexity/createComplexityRule.js.map +1 -1
  23. package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.js.map +1 -1
  24. package/dist/packages/graphql-query-complexity/estimators/simple/index.js.map +1 -1
  25. package/dist/packages/graphql-query-complexity/index.js.map +1 -1
  26. package/dist/packages/graphql-type-json/index.d.ts.map +1 -1
  27. package/dist/packages/graphql-type-json/index.js +0 -1
  28. package/dist/packages/graphql-type-json/index.js.map +1 -1
  29. package/dist/resolvers/auth/access.d.ts +1 -2
  30. package/dist/resolvers/auth/access.d.ts.map +1 -1
  31. package/dist/resolvers/auth/access.js +2 -3
  32. package/dist/resolvers/auth/access.js.map +1 -1
  33. package/dist/resolvers/auth/forgotPassword.d.ts +1 -2
  34. package/dist/resolvers/auth/forgotPassword.d.ts.map +1 -1
  35. package/dist/resolvers/auth/forgotPassword.js +3 -3
  36. package/dist/resolvers/auth/forgotPassword.js.map +1 -1
  37. package/dist/resolvers/auth/init.d.ts +1 -2
  38. package/dist/resolvers/auth/init.d.ts.map +1 -1
  39. package/dist/resolvers/auth/init.js +1 -2
  40. package/dist/resolvers/auth/init.js.map +1 -1
  41. package/dist/resolvers/auth/login.d.ts +1 -2
  42. package/dist/resolvers/auth/login.d.ts.map +1 -1
  43. package/dist/resolvers/auth/login.js +3 -3
  44. package/dist/resolvers/auth/login.js.map +1 -1
  45. package/dist/resolvers/auth/logout.d.ts +1 -2
  46. package/dist/resolvers/auth/logout.d.ts.map +1 -1
  47. package/dist/resolvers/auth/logout.js +1 -2
  48. package/dist/resolvers/auth/logout.js.map +1 -1
  49. package/dist/resolvers/auth/me.d.ts +1 -2
  50. package/dist/resolvers/auth/me.d.ts.map +1 -1
  51. package/dist/resolvers/auth/me.js +4 -3
  52. package/dist/resolvers/auth/me.js.map +1 -1
  53. package/dist/resolvers/auth/refresh.d.ts +1 -2
  54. package/dist/resolvers/auth/refresh.d.ts.map +1 -1
  55. package/dist/resolvers/auth/refresh.js +4 -11
  56. package/dist/resolvers/auth/refresh.js.map +1 -1
  57. package/dist/resolvers/auth/resetPassword.d.ts +1 -2
  58. package/dist/resolvers/auth/resetPassword.d.ts.map +1 -1
  59. package/dist/resolvers/auth/resetPassword.js +7 -4
  60. package/dist/resolvers/auth/resetPassword.js.map +1 -1
  61. package/dist/resolvers/auth/unlock.d.ts +1 -2
  62. package/dist/resolvers/auth/unlock.d.ts.map +1 -1
  63. package/dist/resolvers/auth/unlock.js +3 -3
  64. package/dist/resolvers/auth/unlock.js.map +1 -1
  65. package/dist/resolvers/auth/verifyEmail.d.ts +1 -2
  66. package/dist/resolvers/auth/verifyEmail.d.ts.map +1 -1
  67. package/dist/resolvers/auth/verifyEmail.js +7 -4
  68. package/dist/resolvers/auth/verifyEmail.js.map +1 -1
  69. package/dist/resolvers/collections/count.d.ts +2 -2
  70. package/dist/resolvers/collections/count.d.ts.map +1 -1
  71. package/dist/resolvers/collections/count.js.map +1 -1
  72. package/dist/resolvers/collections/create.d.ts +6 -7
  73. package/dist/resolvers/collections/create.d.ts.map +1 -1
  74. package/dist/resolvers/collections/create.js +1 -1
  75. package/dist/resolvers/collections/create.js.map +1 -1
  76. package/dist/resolvers/collections/delete.d.ts +5 -5
  77. package/dist/resolvers/collections/delete.d.ts.map +1 -1
  78. package/dist/resolvers/collections/delete.js +6 -2
  79. package/dist/resolvers/collections/delete.js.map +1 -1
  80. package/dist/resolvers/collections/docAccess.d.ts +2 -2
  81. package/dist/resolvers/collections/docAccess.d.ts.map +1 -1
  82. package/dist/resolvers/collections/docAccess.js.map +1 -1
  83. package/dist/resolvers/collections/duplicate.d.ts +5 -5
  84. package/dist/resolvers/collections/duplicate.d.ts.map +1 -1
  85. package/dist/resolvers/collections/duplicate.js +1 -1
  86. package/dist/resolvers/collections/duplicate.js.map +1 -1
  87. package/dist/resolvers/collections/find.d.ts +2 -2
  88. package/dist/resolvers/collections/find.d.ts.map +1 -1
  89. package/dist/resolvers/collections/find.js +12 -5
  90. package/dist/resolvers/collections/find.js.map +1 -1
  91. package/dist/resolvers/collections/findByID.d.ts +5 -5
  92. package/dist/resolvers/collections/findByID.d.ts.map +1 -1
  93. package/dist/resolvers/collections/findByID.js +6 -2
  94. package/dist/resolvers/collections/findByID.js.map +1 -1
  95. package/dist/resolvers/collections/findVersionByID.d.ts +2 -2
  96. package/dist/resolvers/collections/findVersionByID.d.ts.map +1 -1
  97. package/dist/resolvers/collections/findVersionByID.js.map +1 -1
  98. package/dist/resolvers/collections/findVersions.d.ts +2 -2
  99. package/dist/resolvers/collections/findVersions.d.ts.map +1 -1
  100. package/dist/resolvers/collections/findVersions.js +6 -2
  101. package/dist/resolvers/collections/findVersions.js.map +1 -1
  102. package/dist/resolvers/collections/restoreVersion.d.ts +4 -3
  103. package/dist/resolvers/collections/restoreVersion.d.ts.map +1 -1
  104. package/dist/resolvers/collections/restoreVersion.js +2 -1
  105. package/dist/resolvers/collections/restoreVersion.js.map +1 -1
  106. package/dist/resolvers/collections/update.d.ts +6 -6
  107. package/dist/resolvers/collections/update.d.ts.map +1 -1
  108. package/dist/resolvers/collections/update.js +6 -2
  109. package/dist/resolvers/collections/update.js.map +1 -1
  110. package/dist/resolvers/globals/docAccess.d.ts +2 -2
  111. package/dist/resolvers/globals/docAccess.d.ts.map +1 -1
  112. package/dist/resolvers/globals/docAccess.js.map +1 -1
  113. package/dist/resolvers/globals/findOne.d.ts +1 -1
  114. package/dist/resolvers/globals/findOne.d.ts.map +1 -1
  115. package/dist/resolvers/globals/findOne.js +7 -3
  116. package/dist/resolvers/globals/findOne.js.map +1 -1
  117. package/dist/resolvers/globals/findVersionByID.d.ts +3 -3
  118. package/dist/resolvers/globals/findVersionByID.d.ts.map +1 -1
  119. package/dist/resolvers/globals/findVersionByID.js +7 -3
  120. package/dist/resolvers/globals/findVersionByID.js.map +1 -1
  121. package/dist/resolvers/globals/findVersions.d.ts +3 -3
  122. package/dist/resolvers/globals/findVersions.d.ts.map +1 -1
  123. package/dist/resolvers/globals/findVersions.js +1 -1
  124. package/dist/resolvers/globals/findVersions.js.map +1 -1
  125. package/dist/resolvers/globals/index.d.ts +5 -5
  126. package/dist/resolvers/globals/index.d.ts.map +1 -1
  127. package/dist/resolvers/globals/index.js +5 -5
  128. package/dist/resolvers/globals/index.js.map +1 -1
  129. package/dist/resolvers/globals/restoreVersion.d.ts +4 -3
  130. package/dist/resolvers/globals/restoreVersion.d.ts.map +1 -1
  131. package/dist/resolvers/globals/restoreVersion.js +2 -1
  132. package/dist/resolvers/globals/restoreVersion.js.map +1 -1
  133. package/dist/resolvers/globals/update.d.ts +6 -6
  134. package/dist/resolvers/globals/update.d.ts.map +1 -1
  135. package/dist/resolvers/globals/update.js +7 -3
  136. package/dist/resolvers/globals/update.js.map +1 -1
  137. package/dist/resolvers/types.d.ts +2 -2
  138. package/dist/resolvers/types.d.ts.map +1 -1
  139. package/dist/resolvers/types.js.map +1 -1
  140. package/dist/schema/buildFallbackLocaleInputType.d.ts +1 -2
  141. package/dist/schema/buildFallbackLocaleInputType.d.ts.map +1 -1
  142. package/dist/schema/buildFallbackLocaleInputType.js +2 -3
  143. package/dist/schema/buildFallbackLocaleInputType.js.map +1 -1
  144. package/dist/schema/buildLocaleInputType.d.ts +1 -2
  145. package/dist/schema/buildLocaleInputType.d.ts.map +1 -1
  146. package/dist/schema/buildLocaleInputType.js +2 -3
  147. package/dist/schema/buildLocaleInputType.js.map +1 -1
  148. package/dist/schema/buildMutationInputType.d.ts.map +1 -1
  149. package/dist/schema/buildMutationInputType.js +58 -14
  150. package/dist/schema/buildMutationInputType.js.map +1 -1
  151. package/dist/schema/buildObjectType.d.ts.map +1 -1
  152. package/dist/schema/buildObjectType.js +193 -85
  153. package/dist/schema/buildObjectType.js.map +1 -1
  154. package/dist/schema/buildPaginatedListType.d.ts +1 -2
  155. package/dist/schema/buildPaginatedListType.d.ts.map +1 -1
  156. package/dist/schema/buildPaginatedListType.js +1 -2
  157. package/dist/schema/buildPaginatedListType.js.map +1 -1
  158. package/dist/schema/buildPoliciesType.d.ts +1 -1
  159. package/dist/schema/buildPoliciesType.d.ts.map +1 -1
  160. package/dist/schema/buildPoliciesType.js +5 -3
  161. package/dist/schema/buildPoliciesType.js.map +1 -1
  162. package/dist/schema/buildWhereInputType.d.ts +2 -2
  163. package/dist/schema/buildWhereInputType.d.ts.map +1 -1
  164. package/dist/schema/buildWhereInputType.js +4 -5
  165. package/dist/schema/buildWhereInputType.js.map +1 -1
  166. package/dist/schema/fieldToWhereInputSchemaMap.d.ts +2 -2
  167. package/dist/schema/fieldToWhereInputSchemaMap.d.ts.map +1 -1
  168. package/dist/schema/fieldToWhereInputSchemaMap.js +31 -7
  169. package/dist/schema/fieldToWhereInputSchemaMap.js.map +1 -1
  170. package/dist/schema/initCollections.d.ts +3 -4
  171. package/dist/schema/initCollections.d.ts.map +1 -1
  172. package/dist/schema/initCollections.js +49 -39
  173. package/dist/schema/initCollections.js.map +1 -1
  174. package/dist/schema/initGlobals.d.ts +2 -2
  175. package/dist/schema/initGlobals.d.ts.map +1 -1
  176. package/dist/schema/initGlobals.js +25 -18
  177. package/dist/schema/initGlobals.js.map +1 -1
  178. package/dist/schema/isFieldNullable.d.ts +1 -2
  179. package/dist/schema/isFieldNullable.d.ts.map +1 -1
  180. package/dist/schema/isFieldNullable.js +1 -2
  181. package/dist/schema/isFieldNullable.js.map +1 -1
  182. package/dist/schema/operators.d.ts +1 -2
  183. package/dist/schema/operators.d.ts.map +1 -1
  184. package/dist/schema/operators.js +1 -2
  185. package/dist/schema/operators.js.map +1 -1
  186. package/dist/schema/recursivelyBuildNestedPaths.d.ts +2 -2
  187. package/dist/schema/recursivelyBuildNestedPaths.d.ts.map +1 -1
  188. package/dist/schema/recursivelyBuildNestedPaths.js +2 -3
  189. package/dist/schema/recursivelyBuildNestedPaths.js.map +1 -1
  190. package/dist/schema/withNullableType.d.ts +1 -2
  191. package/dist/schema/withNullableType.d.ts.map +1 -1
  192. package/dist/schema/withNullableType.js +1 -2
  193. package/dist/schema/withNullableType.js.map +1 -1
  194. package/dist/schema/withOperators.d.ts.map +1 -1
  195. package/dist/schema/withOperators.js +11 -6
  196. package/dist/schema/withOperators.js.map +1 -1
  197. package/dist/utilities/combineParentName.d.ts +1 -2
  198. package/dist/utilities/combineParentName.d.ts.map +1 -1
  199. package/dist/utilities/combineParentName.js +2 -3
  200. package/dist/utilities/combineParentName.js.map +1 -1
  201. package/dist/utilities/formatName.d.ts +1 -2
  202. package/dist/utilities/formatName.d.ts.map +1 -1
  203. package/dist/utilities/formatName.js +1 -2
  204. package/dist/utilities/formatName.js.map +1 -1
  205. package/dist/utilities/formatName.spec.js +1 -1
  206. package/dist/utilities/formatName.spec.js.map +1 -1
  207. package/dist/utilities/formatOptions.d.ts +1 -2
  208. package/dist/utilities/formatOptions.d.ts.map +1 -1
  209. package/dist/utilities/formatOptions.js +2 -3
  210. package/dist/utilities/formatOptions.js.map +1 -1
  211. package/dist/utilities/groupOrTabHasRequiredSubfield.js.map +1 -1
  212. package/dist/utilities/wrapCustomResolver.d.ts +2 -2
  213. package/dist/utilities/wrapCustomResolver.d.ts.map +1 -1
  214. package/dist/utilities/wrapCustomResolver.js.map +1 -1
  215. package/package.json +20 -12
  216. package/dist/utilities/getCheckIfLocaleObject.d.ts +0 -5
  217. package/dist/utilities/getCheckIfLocaleObject.d.ts.map +0 -1
  218. package/dist/utilities/getCheckIfLocaleObject.js +0 -3
  219. package/dist/utilities/getCheckIfLocaleObject.js.map +0 -1
  220. package/dist/utilities/uppercase.d.ts +0 -3
  221. package/dist/utilities/uppercase.d.ts.map +0 -1
  222. package/dist/utilities/uppercase.js +0 -11
  223. package/dist/utilities/uppercase.js.map +0 -1
@@ -1,14 +1,13 @@
1
- /* eslint-disable @typescript-eslint/no-use-before-define */ /* eslint-disable no-await-in-loop */ /* eslint-disable no-restricted-syntax */ import { GraphQLBoolean, GraphQLEnumType, GraphQLFloat, GraphQLInt, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLString, GraphQLUnionType } from 'graphql';
1
+ import { GraphQLBoolean, GraphQLEnumType, GraphQLFloat, GraphQLInt, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLString, GraphQLUnionType } from 'graphql';
2
2
  import { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars';
3
- import { MissingEditorProp, createDataloaderCacheKey, toWords } from 'payload';
3
+ import { createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload';
4
4
  import { tabHasName } from 'payload/shared';
5
5
  import { GraphQLJSON } from '../packages/graphql-type-json/index.js';
6
- import combineParentName from '../utilities/combineParentName.js';
7
- import formatName from '../utilities/formatName.js';
8
- import formatOptions from '../utilities/formatOptions.js';
9
- import buildWhereInputType from './buildWhereInputType.js';
10
- import isFieldNullable from './isFieldNullable.js';
11
- import withNullableType from './withNullableType.js';
6
+ import { combineParentName } from '../utilities/combineParentName.js';
7
+ import { formatName } from '../utilities/formatName.js';
8
+ import { formatOptions } from '../utilities/formatOptions.js';
9
+ import { isFieldNullable } from './isFieldNullable.js';
10
+ import { withNullableType } from './withNullableType.js';
12
11
  export function buildObjectType({ name, baseFields = {}, config, fields, forceNullable, graphqlResult, parentName }) {
13
12
  const fieldToSchemaMap = {
14
13
  array: (objectTypeConfig, field)=>{
@@ -94,7 +93,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
94
93
  }),
95
94
  collapsible: (objectTypeConfig, field)=>field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField)=>{
96
95
  const addSubField = fieldToSchemaMap[subField.type];
97
- if (addSubField) return addSubField(objectTypeConfigWithCollapsibleFields, subField);
96
+ if (addSubField) {
97
+ return addSubField(objectTypeConfigWithCollapsibleFields, subField);
98
+ }
98
99
  return objectTypeConfigWithCollapsibleFields;
99
100
  }, objectTypeConfig),
100
101
  date: (objectTypeConfig, field)=>({
@@ -171,17 +172,19 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
171
172
  const relationshipName = combineParentName(parentName, toWords(field.name, true));
172
173
  let type;
173
174
  let relationToType = null;
175
+ const graphQLCollections = config.collections.filter((collectionConfig)=>collectionConfig.graphQL !== false);
174
176
  if (Array.isArray(relationTo)) {
175
177
  relationToType = new GraphQLEnumType({
176
178
  name: `${relationshipName}_RelationTo`,
177
- values: relationTo.reduce((relations, relation)=>({
179
+ values: relationTo.filter((relation)=>graphQLCollections.some((collection)=>collection.slug === relation)).reduce((relations, relation)=>({
178
180
  ...relations,
179
181
  [formatName(relation)]: {
180
182
  value: relation
181
183
  }
182
184
  }), {})
183
185
  });
184
- const types = relationTo.map((relation)=>graphqlResult.collections[relation].graphQL.type);
186
+ // Only pass collections that are GraphQL enabled
187
+ const types = relationTo.filter((relation)=>graphQLCollections.some((collection)=>collection.slug === relation)).map((relation)=>graphqlResult.collections[relation]?.graphQL.type);
185
188
  type = new GraphQLObjectType({
186
189
  name: `${relationshipName}_Relationship`,
187
190
  fields: {
@@ -191,7 +194,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
191
194
  value: {
192
195
  type: new GraphQLUnionType({
193
196
  name: relationshipName,
194
- resolveType (data, { req }) {
197
+ resolveType (data) {
195
198
  return graphqlResult.collections[data.collection].graphQL.type.name;
196
199
  },
197
200
  types
@@ -210,7 +213,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
210
213
  const relationshipArgs = {};
211
214
  const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [
212
215
  relationTo
213
- ]).some((relation)=>graphqlResult.collections[relation].config.versions?.drafts);
216
+ ]).filter((relation)=>graphQLCollections.some((collection)=>collection.slug === relation)).some((relation)=>graphqlResult.collections[relation].config.versions?.drafts);
214
217
  if (relationsUseDrafts) {
215
218
  relationshipArgs.draft = {
216
219
  type: GraphQLBoolean
@@ -242,33 +245,35 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
242
245
  const createPopulationPromise = async (relatedDoc, i)=>{
243
246
  let id = relatedDoc;
244
247
  let collectionSlug = field.relationTo;
245
- if (isRelatedToManyCollections) {
246
- collectionSlug = relatedDoc.relationTo;
247
- id = relatedDoc.value;
248
- }
249
- const result = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
250
- collectionSlug: collectionSlug,
251
- currentDepth: 0,
252
- depth: 0,
253
- docID: id,
254
- draft,
255
- fallbackLocale,
256
- locale,
257
- overrideAccess: false,
258
- showHiddenFields: false,
259
- transactionID: context.req.transactionID
260
- }));
261
- if (result) {
248
+ if (graphQLCollections.some((collection)=>collection.slug === collectionSlug)) {
262
249
  if (isRelatedToManyCollections) {
263
- results[i] = {
264
- relationTo: collectionSlug,
265
- value: {
266
- ...result,
267
- collection: collectionSlug
268
- }
269
- };
270
- } else {
271
- results[i] = result;
250
+ collectionSlug = relatedDoc.relationTo;
251
+ id = relatedDoc.value;
252
+ }
253
+ const result = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
254
+ collectionSlug: collectionSlug,
255
+ currentDepth: 0,
256
+ depth: 0,
257
+ docID: id,
258
+ draft,
259
+ fallbackLocale,
260
+ locale,
261
+ overrideAccess: false,
262
+ showHiddenFields: false,
263
+ transactionID: context.req.transactionID
264
+ }));
265
+ if (result) {
266
+ if (isRelatedToManyCollections) {
267
+ results[i] = {
268
+ relationTo: collectionSlug,
269
+ value: {
270
+ ...result,
271
+ collection: collectionSlug
272
+ }
273
+ };
274
+ } else {
275
+ results[i] = result;
276
+ }
272
277
  }
273
278
  }
274
279
  };
@@ -286,29 +291,31 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
286
291
  relatedCollectionSlug = value.relationTo;
287
292
  }
288
293
  if (id) {
289
- const relatedDocument = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
290
- collectionSlug: relatedCollectionSlug,
291
- currentDepth: 0,
292
- depth: 0,
293
- docID: id,
294
- draft,
295
- fallbackLocale,
296
- locale,
297
- overrideAccess: false,
298
- showHiddenFields: false,
299
- transactionID: context.req.transactionID
300
- }));
301
- if (relatedDocument) {
302
- if (isRelatedToManyCollections) {
303
- return {
304
- relationTo: relatedCollectionSlug,
305
- value: {
306
- ...relatedDocument,
307
- collection: relatedCollectionSlug
308
- }
309
- };
294
+ if (graphQLCollections.some((collection)=>collection.slug === relatedCollectionSlug)) {
295
+ const relatedDocument = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
296
+ collectionSlug: relatedCollectionSlug,
297
+ currentDepth: 0,
298
+ depth: 0,
299
+ docID: id,
300
+ draft,
301
+ fallbackLocale,
302
+ locale,
303
+ overrideAccess: false,
304
+ showHiddenFields: false,
305
+ transactionID: context.req.transactionID
306
+ }));
307
+ if (relatedDocument) {
308
+ if (isRelatedToManyCollections) {
309
+ return {
310
+ relationTo: relatedCollectionSlug,
311
+ value: {
312
+ ...relatedDocument,
313
+ collection: relatedCollectionSlug
314
+ }
315
+ };
316
+ }
317
+ return relatedDocument;
310
318
  }
311
- return relatedDocument;
312
319
  }
313
320
  return null;
314
321
  }
@@ -331,7 +338,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
331
338
  },
332
339
  async resolve (parent, args, context) {
333
340
  let depth = config.defaultDepth;
334
- if (typeof args.depth !== 'undefined') depth = args.depth;
341
+ if (typeof args.depth !== 'undefined') {
342
+ depth = args.depth;
343
+ }
335
344
  if (!field?.editor) {
336
345
  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
337
346
  ;
@@ -372,7 +381,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
372
381
  }),
373
382
  row: (objectTypeConfig, field)=>field.fields.reduce((objectTypeConfigWithRowFields, subField)=>{
374
383
  const addSubField = fieldToSchemaMap[subField.type];
375
- if (addSubField) return addSubField(objectTypeConfigWithRowFields, subField);
384
+ if (addSubField) {
385
+ return addSubField(objectTypeConfigWithRowFields, subField);
386
+ }
376
387
  return objectTypeConfigWithRowFields;
377
388
  }, objectTypeConfig),
378
389
  select: (objectTypeConfig, field)=>{
@@ -420,7 +431,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
420
431
  ...tabSchema,
421
432
  ...tab.fields.reduce((subFieldSchema, subField)=>{
422
433
  const addSubField = fieldToSchemaMap[subField.type];
423
- if (addSubField) return addSubField(subFieldSchema, subField);
434
+ if (addSubField) {
435
+ return addSubField(subFieldSchema, subField);
436
+ }
424
437
  return subFieldSchema;
425
438
  }, tabSchema)
426
439
  };
@@ -439,34 +452,125 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
439
452
  }),
440
453
  upload: (objectTypeConfig, field)=>{
441
454
  const { relationTo } = field;
442
- const uploadName = combineParentName(parentName, toWords(field.name, true));
455
+ const isRelatedToManyCollections = Array.isArray(relationTo);
456
+ const hasManyValues = field.hasMany;
457
+ const relationshipName = combineParentName(parentName, toWords(field.name, true));
458
+ let type;
459
+ let relationToType = null;
460
+ if (Array.isArray(relationTo)) {
461
+ relationToType = new GraphQLEnumType({
462
+ name: `${relationshipName}_RelationTo`,
463
+ values: relationTo.reduce((relations, relation)=>({
464
+ ...relations,
465
+ [formatName(relation)]: {
466
+ value: relation
467
+ }
468
+ }), {})
469
+ });
470
+ const types = relationTo.map((relation)=>graphqlResult.collections[relation].graphQL.type);
471
+ type = new GraphQLObjectType({
472
+ name: `${relationshipName}_Relationship`,
473
+ fields: {
474
+ relationTo: {
475
+ type: relationToType
476
+ },
477
+ value: {
478
+ type: new GraphQLUnionType({
479
+ name: relationshipName,
480
+ resolveType (data) {
481
+ return graphqlResult.collections[data.collection].graphQL.type.name;
482
+ },
483
+ types
484
+ })
485
+ }
486
+ }
487
+ });
488
+ } else {
489
+ ({ type } = graphqlResult.collections[relationTo].graphQL);
490
+ }
443
491
  // If the relationshipType is undefined at this point,
444
492
  // it can be assumed that this blockType can have a relationship
445
493
  // to itself. Therefore, we set the relationshipType equal to the blockType
446
494
  // that is currently being created.
447
- const type = withNullableType(field, graphqlResult.collections[relationTo].graphQL.type || newlyCreatedBlockType, forceNullable);
448
- const uploadArgs = {};
495
+ type = type || newlyCreatedBlockType;
496
+ const relationshipArgs = {};
497
+ const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [
498
+ relationTo
499
+ ]).some((relation)=>graphqlResult.collections[relation].config.versions?.drafts);
500
+ if (relationsUseDrafts) {
501
+ relationshipArgs.draft = {
502
+ type: GraphQLBoolean
503
+ };
504
+ }
449
505
  if (config.localization) {
450
- uploadArgs.locale = {
506
+ relationshipArgs.locale = {
451
507
  type: graphqlResult.types.localeInputType
452
508
  };
453
- uploadArgs.fallbackLocale = {
509
+ relationshipArgs.fallbackLocale = {
454
510
  type: graphqlResult.types.fallbackLocaleInputType
455
511
  };
456
512
  }
457
- const relatedCollectionSlug = field.relationTo;
458
- const upload = {
459
- type,
460
- args: uploadArgs,
513
+ const relationship = {
514
+ type: withNullableType(field, hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type, forceNullable),
515
+ args: relationshipArgs,
461
516
  extensions: {
462
- complexity: 20
517
+ complexity: 10
463
518
  },
464
519
  async resolve (parent, args, context) {
465
520
  const value = parent[field.name];
466
521
  const locale = args.locale || context.req.locale;
467
522
  const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale;
468
- const id = value;
523
+ let relatedCollectionSlug = field.relationTo;
469
524
  const draft = Boolean(args.draft ?? context.req.query?.draft);
525
+ if (hasManyValues) {
526
+ const results = [];
527
+ const resultPromises = [];
528
+ const createPopulationPromise = async (relatedDoc, i)=>{
529
+ let id = relatedDoc;
530
+ let collectionSlug = field.relationTo;
531
+ if (isRelatedToManyCollections) {
532
+ collectionSlug = relatedDoc.relationTo;
533
+ id = relatedDoc.value;
534
+ }
535
+ const result = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
536
+ collectionSlug,
537
+ currentDepth: 0,
538
+ depth: 0,
539
+ docID: id,
540
+ draft,
541
+ fallbackLocale,
542
+ locale,
543
+ overrideAccess: false,
544
+ showHiddenFields: false,
545
+ transactionID: context.req.transactionID
546
+ }));
547
+ if (result) {
548
+ if (isRelatedToManyCollections) {
549
+ results[i] = {
550
+ relationTo: collectionSlug,
551
+ value: {
552
+ ...result,
553
+ collection: collectionSlug
554
+ }
555
+ };
556
+ } else {
557
+ results[i] = result;
558
+ }
559
+ }
560
+ };
561
+ if (value) {
562
+ value.forEach((relatedDoc, i)=>{
563
+ resultPromises.push(createPopulationPromise(relatedDoc, i));
564
+ });
565
+ }
566
+ await Promise.all(resultPromises);
567
+ return results;
568
+ }
569
+ let id = value;
570
+ if (isRelatedToManyCollections && value) {
571
+ id = value.value;
572
+ relatedCollectionSlug = value.relationTo;
573
+ }
470
574
  if (id) {
471
575
  const relatedDocument = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
472
576
  collectionSlug: relatedCollectionSlug,
@@ -480,22 +584,26 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
480
584
  showHiddenFields: false,
481
585
  transactionID: context.req.transactionID
482
586
  }));
483
- return relatedDocument || null;
587
+ if (relatedDocument) {
588
+ if (isRelatedToManyCollections) {
589
+ return {
590
+ relationTo: relatedCollectionSlug,
591
+ value: {
592
+ ...relatedDocument,
593
+ collection: relatedCollectionSlug
594
+ }
595
+ };
596
+ }
597
+ return relatedDocument;
598
+ }
599
+ return null;
484
600
  }
485
601
  return null;
486
602
  }
487
603
  };
488
- const whereFields = graphqlResult.collections[relationTo].config.fields;
489
- upload.args.where = {
490
- type: buildWhereInputType({
491
- name: uploadName,
492
- fields: whereFields,
493
- parentName: uploadName
494
- })
495
- };
496
604
  return {
497
605
  ...objectTypeConfig,
498
- [field.name]: upload
606
+ [field.name]: relationship
499
607
  };
500
608
  }
501
609
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable no-await-in-loop */\n/* eslint-disable no-restricted-syntax */\nimport type { GraphQLFieldConfig, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextField,\n TextareaField,\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 { MissingEditorProp, createDataloaderCacheKey, 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 buildWhereInputType from './buildWhereInputType.js'\nimport isFieldNullable from './isFieldNullable.js'\nimport withNullableType from './withNullableType.js'\n\ntype LocaleInputType = {\n fallbackLocale: {\n type: GraphQLType\n }\n locale: {\n type: GraphQLType\n }\n where: {\n type: GraphQLType\n }\n}\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: BlockField) => {\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) return addSubField(objectTypeConfigWithCollapsibleFields, subField)\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]: { type: graphqlResult.types.groupTypes[interfaceName] },\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 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, { req }) {\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: { complexity: 10 },\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: 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 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 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 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') depth = args.depth\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) return addSubField(objectTypeConfigWithRowFields, subField)\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]: { type: graphqlResult.types.groupTypes[interfaceName] },\n }\n }\n\n return {\n ...tabSchema,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) return addSubField(subFieldSchema, subField)\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\n const uploadName = combineParentName(parentName, toWords(field.name, true))\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 const type = withNullableType(\n field,\n graphqlResult.collections[relationTo].graphQL.type || newlyCreatedBlockType,\n forceNullable,\n )\n\n const uploadArgs = {} as LocaleInputType\n\n if (config.localization) {\n uploadArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n uploadArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relatedCollectionSlug = field.relationTo\n\n const upload = {\n type,\n args: uploadArgs,\n extensions: { complexity: 20 },\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 const id = value\n const draft = Boolean(args.draft ?? context.req.query?.draft)\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 return relatedDocument || null\n }\n\n return null\n },\n }\n\n const whereFields = graphqlResult.collections[relationTo].config.fields\n\n upload.args.where = {\n type: buildWhereInputType({\n name: uploadName,\n fields: whereFields,\n parentName: uploadName,\n }),\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: upload,\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","MissingEditorProp","createDataloaderCacheKey","toWords","tabHasName","GraphQLJSON","combineParentName","formatName","formatOptions","buildWhereInputType","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","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","Array","isArray","hasManyValues","relationshipName","relationToType","relations","relation","value","map","collections","req","collection","newlyCreatedBlockType","relationshipArgs","relationsUseDrafts","some","versions","drafts","draft","localization","locale","localeInputType","fallbackLocale","fallbackLocaleInputType","args","extensions","complexity","resolve","parent","context","relatedCollectionSlug","Boolean","query","results","resultPromises","createPopulationPromise","relatedDoc","i","id","collectionSlug","result","payloadDataLoader","load","currentDepth","depth","docID","overrideAccess","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","uploadName","uploadArgs","whereFields","where","objectSchema","fieldSchema"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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 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 { 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]: { type: graphqlResult.types.groupTypes[interfaceName] },\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: { complexity: 10 },\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 (graphQLCollections.some((collection) => collection.slug === collectionSlug)) {\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]: { type: graphqlResult.types.groupTypes[interfaceName] },\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: { complexity: 10 },\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","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","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","Array","isArray","hasManyValues","relationshipName","relationToType","graphQLCollections","collections","filter","collectionConfig","relation","some","collection","relations","value","map","newlyCreatedBlockType","relationshipArgs","relationsUseDrafts","versions","drafts","draft","localization","locale","localeInputType","fallbackLocale","fallbackLocaleInputType","args","extensions","complexity","resolve","parent","context","req","relatedCollectionSlug","Boolean","query","results","resultPromises","createPopulationPromise","relatedDoc","i","id","collectionSlug","result","payloadDataLoader","load","currentDepth","depth","docID","overrideAccess","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,4 +1,3 @@
1
1
  import { GraphQLObjectType } from 'graphql';
2
- declare const buildPaginatedListType: (name: any, docType: any) => GraphQLObjectType<any, any>;
3
- export default buildPaginatedListType;
2
+ export declare const buildPaginatedListType: (name: any, docType: any) => GraphQLObjectType<any, any>;
4
3
  //# sourceMappingURL=buildPaginatedListType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildPaginatedListType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPaginatedListType.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEpF,QAAA,MAAM,sBAAsB,0DAkBxB,CAAA;AAEJ,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"buildPaginatedListType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPaginatedListType.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEpF,eAAO,MAAM,sBAAsB,0DAkB/B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { GraphQLBoolean, GraphQLInt, GraphQLList, GraphQLObjectType } from 'graphql';
2
- const buildPaginatedListType = (name, docType)=>new GraphQLObjectType({
2
+ export const buildPaginatedListType = (name, docType)=>new GraphQLObjectType({
3
3
  name,
4
4
  fields: {
5
5
  docs: {
@@ -37,6 +37,5 @@ const buildPaginatedListType = (name, docType)=>new GraphQLObjectType({
37
37
  }
38
38
  }
39
39
  });
40
- export default buildPaginatedListType;
41
40
 
42
41
  //# sourceMappingURL=buildPaginatedListType.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildPaginatedListType.ts"],"sourcesContent":["import { GraphQLBoolean, GraphQLInt, GraphQLList, GraphQLObjectType } from 'graphql'\n\nconst buildPaginatedListType = (name, docType) =>\n new GraphQLObjectType({\n name,\n fields: {\n docs: {\n type: new GraphQLList(docType),\n },\n hasNextPage: { type: GraphQLBoolean },\n hasPrevPage: { type: GraphQLBoolean },\n limit: { type: GraphQLInt },\n nextPage: { type: GraphQLInt },\n offset: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagingCounter: { type: GraphQLInt },\n prevPage: { type: GraphQLInt },\n totalDocs: { type: GraphQLInt },\n totalPages: { type: GraphQLInt },\n },\n })\n\nexport default buildPaginatedListType\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLList","GraphQLObjectType","buildPaginatedListType","name","docType","fields","docs","type","hasNextPage","hasPrevPage","limit","nextPage","offset","page","pagingCounter","prevPage","totalDocs","totalPages"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,UAAS;AAEpF,MAAMC,yBAAyB,CAACC,MAAMC,UACpC,IAAIH,kBAAkB;QACpBE;QACAE,QAAQ;YACNC,MAAM;gBACJC,MAAM,IAAIP,YAAYI;YACxB;YACAI,aAAa;gBAAED,MAAMT;YAAe;YACpCW,aAAa;gBAAEF,MAAMT;YAAe;YACpCY,OAAO;gBAAEH,MAAMR;YAAW;YAC1BY,UAAU;gBAAEJ,MAAMR;YAAW;YAC7Ba,QAAQ;gBAAEL,MAAMR;YAAW;YAC3Bc,MAAM;gBAAEN,MAAMR;YAAW;YACzBe,eAAe;gBAAEP,MAAMR;YAAW;YAClCgB,UAAU;gBAAER,MAAMR;YAAW;YAC7BiB,WAAW;gBAAET,MAAMR;YAAW;YAC9BkB,YAAY;gBAAEV,MAAMR;YAAW;QACjC;IACF;AAEF,eAAeG,uBAAsB"}
1
+ {"version":3,"sources":["../../src/schema/buildPaginatedListType.ts"],"sourcesContent":["import { GraphQLBoolean, GraphQLInt, GraphQLList, GraphQLObjectType } from 'graphql'\n\nexport const buildPaginatedListType = (name, docType) =>\n new GraphQLObjectType({\n name,\n fields: {\n docs: {\n type: new GraphQLList(docType),\n },\n hasNextPage: { type: GraphQLBoolean },\n hasPrevPage: { type: GraphQLBoolean },\n limit: { type: GraphQLInt },\n nextPage: { type: GraphQLInt },\n offset: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagingCounter: { type: GraphQLInt },\n prevPage: { type: GraphQLInt },\n totalDocs: { type: GraphQLInt },\n totalPages: { type: GraphQLInt },\n },\n })\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLList","GraphQLObjectType","buildPaginatedListType","name","docType","fields","docs","type","hasNextPage","hasPrevPage","limit","nextPage","offset","page","pagingCounter","prevPage","totalDocs","totalPages"],"mappings":"AAAA,SAASA,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,UAAS;AAEpF,OAAO,MAAMC,yBAAyB,CAACC,MAAMC,UAC3C,IAAIH,kBAAkB;QACpBE;QACAE,QAAQ;YACNC,MAAM;gBACJC,MAAM,IAAIP,YAAYI;YACxB;YACAI,aAAa;gBAAED,MAAMT;YAAe;YACpCW,aAAa;gBAAEF,MAAMT;YAAe;YACpCY,OAAO;gBAAEH,MAAMR;YAAW;YAC1BY,UAAU;gBAAEJ,MAAMR;YAAW;YAC7Ba,QAAQ;gBAAEL,MAAMR;YAAW;YAC3Bc,MAAM;gBAAEN,MAAMR;YAAW;YACzBe,eAAe;gBAAEP,MAAMR;YAAW;YAClCgB,UAAU;gBAAER,MAAMR;YAAW;YAC7BiB,WAAW;gBAAET,MAAMR;YAAW;YAC9BkB,YAAY;gBAAEV,MAAMR;YAAW;QACjC;IACF,GAAE"}