@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.
- package/dist/schema/buildMutationInputType.d.ts +2 -1
- package/dist/schema/buildMutationInputType.d.ts.map +1 -1
- package/dist/schema/buildMutationInputType.js +76 -13
- package/dist/schema/buildMutationInputType.js.map +1 -1
- package/dist/schema/buildObjectType.d.ts +2 -1
- package/dist/schema/buildObjectType.d.ts.map +1 -1
- package/dist/schema/buildObjectType.js +130 -29
- package/dist/schema/buildObjectType.js.map +1 -1
- package/dist/schema/initCollections.d.ts.map +1 -1
- package/dist/schema/initCollections.js +2 -0
- package/dist/schema/initCollections.js.map +1 -1
- package/dist/schema/initGlobals.d.ts.map +1 -1
- package/dist/schema/initGlobals.js +1 -0
- package/dist/schema/initGlobals.js.map +1 -1
- package/dist/schema/isFieldNullable.d.ts +5 -1
- package/dist/schema/isFieldNullable.d.ts.map +1 -1
- package/dist/schema/isFieldNullable.js +2 -2
- package/dist/schema/isFieldNullable.js.map +1 -1
- package/dist/schema/withNullableType.d.ts +6 -1
- package/dist/schema/withNullableType.d.ts.map +1 -1
- package/dist/schema/withNullableType.js +2 -2
- package/dist/schema/withNullableType.js.map +1 -1
- package/package.json +3 -3
|
@@ -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(
|
|
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(
|
|
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,
|
|
41
|
-
|
|
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[
|
|
62
|
-
acc.push(graphqlResult.types.blockTypes[
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|
|
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) {
|