@payloadcms/graphql 3.24.0-canary.f229d8d → 3.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +123 -25
- 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
|
@@ -15,8 +15,9 @@ type BuildMutationInputTypeArgs = {
|
|
|
15
15
|
forceNullable?: boolean;
|
|
16
16
|
graphqlResult: GraphQLInfo;
|
|
17
17
|
name: string;
|
|
18
|
+
parentIsLocalized: boolean;
|
|
18
19
|
parentName: string;
|
|
19
20
|
};
|
|
20
|
-
export declare function buildMutationInputType({ name, config, fields, forceNullable, graphqlResult, parentName, }: BuildMutationInputTypeArgs): GraphQLInputObjectType | null;
|
|
21
|
+
export declare function buildMutationInputType({ name, config, fields, forceNullable, graphqlResult, parentIsLocalized, parentName, }: BuildMutationInputTypeArgs): GraphQLInputObjectType | null;
|
|
21
22
|
export {};
|
|
22
23
|
//# sourceMappingURL=buildMutationInputType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildMutationInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildMutationInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAe,MAAM,SAAS,CAAA;AACtF,OAAO,KAAK,EAQV,KAAK,EACL,WAAW,EASX,yBAAyB,EACzB,eAAe,EAMhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAIL,sBAAsB,EAKvB,MAAM,SAAS,CAAA;AAUhB,QAAA,MAAM,YAAY;;;CAGjB,CAAA;AAED,eAAO,MAAM,mBAAmB,SACxB,MAAM,OAAO,YAAY,cACnB,yBAAyB,KACpC,iBAUF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACxC,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,aAAqB,EACrB,aAAa,EACb,UAAU,GACX,EAAE,0BAA0B,GAAG,sBAAsB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"buildMutationInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildMutationInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAe,MAAM,SAAS,CAAA;AACtF,OAAO,KAAK,EAQV,KAAK,EACL,WAAW,EASX,yBAAyB,EACzB,eAAe,EAMhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAIL,sBAAsB,EAKvB,MAAM,SAAS,CAAA;AAUhB,QAAA,MAAM,YAAY;;;CAGjB,CAAA;AAED,eAAO,MAAM,mBAAmB,SACxB,MAAM,OAAO,YAAY,cACnB,yBAAyB,KACpC,iBAUF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACxC,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,aAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,UAAU,GACX,EAAE,0BAA0B,GAAG,sBAAsB,GAAG,IAAI,CAmV5D"}
|
|
@@ -17,7 +17,7 @@ export const getCollectionIDType = (type, collection)=>{
|
|
|
17
17
|
}
|
|
18
18
|
return idFieldTypes[idField.type];
|
|
19
19
|
};
|
|
20
|
-
export function buildMutationInputType({ name, config, fields, forceNullable = false, graphqlResult, parentName }) {
|
|
20
|
+
export function buildMutationInputType({ name, config, fields, forceNullable = false, graphqlResult, parentIsLocalized, parentName }) {
|
|
21
21
|
const fieldToSchemaMap = {
|
|
22
22
|
array: (inputObjectTypeConfig, field)=>{
|
|
23
23
|
const fullName = combineParentName(parentName, toWords(field.name, true));
|
|
@@ -26,12 +26,18 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
26
26
|
config,
|
|
27
27
|
fields: field.fields,
|
|
28
28
|
graphqlResult,
|
|
29
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
29
30
|
parentName: fullName
|
|
30
31
|
});
|
|
31
32
|
if (!type) {
|
|
32
33
|
return inputObjectTypeConfig;
|
|
33
34
|
}
|
|
34
|
-
type = new GraphQLList(withNullableType(
|
|
35
|
+
type = new GraphQLList(withNullableType({
|
|
36
|
+
type,
|
|
37
|
+
field,
|
|
38
|
+
forceNullable,
|
|
39
|
+
parentIsLocalized
|
|
40
|
+
}));
|
|
35
41
|
return {
|
|
36
42
|
...inputObjectTypeConfig,
|
|
37
43
|
[field.name]: {
|
|
@@ -54,7 +60,12 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
54
60
|
code: (inputObjectTypeConfig, field)=>({
|
|
55
61
|
...inputObjectTypeConfig,
|
|
56
62
|
[field.name]: {
|
|
57
|
-
type: withNullableType(
|
|
63
|
+
type: withNullableType({
|
|
64
|
+
type: GraphQLString,
|
|
65
|
+
field,
|
|
66
|
+
forceNullable,
|
|
67
|
+
parentIsLocalized
|
|
68
|
+
})
|
|
58
69
|
}
|
|
59
70
|
}),
|
|
60
71
|
collapsible: (inputObjectTypeConfig, field)=>field.fields.reduce((acc, subField)=>{
|
|
@@ -67,13 +78,23 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
67
78
|
date: (inputObjectTypeConfig, field)=>({
|
|
68
79
|
...inputObjectTypeConfig,
|
|
69
80
|
[field.name]: {
|
|
70
|
-
type: withNullableType(
|
|
81
|
+
type: withNullableType({
|
|
82
|
+
type: GraphQLString,
|
|
83
|
+
field,
|
|
84
|
+
forceNullable,
|
|
85
|
+
parentIsLocalized
|
|
86
|
+
})
|
|
71
87
|
}
|
|
72
88
|
}),
|
|
73
89
|
email: (inputObjectTypeConfig, field)=>({
|
|
74
90
|
...inputObjectTypeConfig,
|
|
75
91
|
[field.name]: {
|
|
76
|
-
type: withNullableType(
|
|
92
|
+
type: withNullableType({
|
|
93
|
+
type: GraphQLString,
|
|
94
|
+
field,
|
|
95
|
+
forceNullable,
|
|
96
|
+
parentIsLocalized
|
|
97
|
+
})
|
|
77
98
|
}
|
|
78
99
|
}),
|
|
79
100
|
group: (inputObjectTypeConfig, field)=>{
|
|
@@ -84,6 +105,7 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
84
105
|
config,
|
|
85
106
|
fields: field.fields,
|
|
86
107
|
graphqlResult,
|
|
108
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
87
109
|
parentName: fullName
|
|
88
110
|
});
|
|
89
111
|
if (!type) {
|
|
@@ -102,7 +124,12 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
102
124
|
json: (inputObjectTypeConfig, field)=>({
|
|
103
125
|
...inputObjectTypeConfig,
|
|
104
126
|
[field.name]: {
|
|
105
|
-
type: withNullableType(
|
|
127
|
+
type: withNullableType({
|
|
128
|
+
type: GraphQLJSON,
|
|
129
|
+
field,
|
|
130
|
+
forceNullable,
|
|
131
|
+
parentIsLocalized
|
|
132
|
+
})
|
|
106
133
|
}
|
|
107
134
|
}),
|
|
108
135
|
number: (inputObjectTypeConfig, field)=>{
|
|
@@ -110,20 +137,35 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
110
137
|
return {
|
|
111
138
|
...inputObjectTypeConfig,
|
|
112
139
|
[field.name]: {
|
|
113
|
-
type: withNullableType(
|
|
140
|
+
type: withNullableType({
|
|
141
|
+
type: field.hasMany === true ? new GraphQLList(type) : type,
|
|
142
|
+
field,
|
|
143
|
+
forceNullable,
|
|
144
|
+
parentIsLocalized
|
|
145
|
+
})
|
|
114
146
|
}
|
|
115
147
|
};
|
|
116
148
|
},
|
|
117
149
|
point: (inputObjectTypeConfig, field)=>({
|
|
118
150
|
...inputObjectTypeConfig,
|
|
119
151
|
[field.name]: {
|
|
120
|
-
type: withNullableType(
|
|
152
|
+
type: withNullableType({
|
|
153
|
+
type: new GraphQLList(GraphQLFloat),
|
|
154
|
+
field,
|
|
155
|
+
forceNullable,
|
|
156
|
+
parentIsLocalized
|
|
157
|
+
})
|
|
121
158
|
}
|
|
122
159
|
}),
|
|
123
160
|
radio: (inputObjectTypeConfig, field)=>({
|
|
124
161
|
...inputObjectTypeConfig,
|
|
125
162
|
[field.name]: {
|
|
126
|
-
type: withNullableType(
|
|
163
|
+
type: withNullableType({
|
|
164
|
+
type: GraphQLString,
|
|
165
|
+
field,
|
|
166
|
+
forceNullable,
|
|
167
|
+
parentIsLocalized
|
|
168
|
+
})
|
|
127
169
|
}
|
|
128
170
|
}),
|
|
129
171
|
relationship: (inputObjectTypeConfig, field)=>{
|
|
@@ -163,7 +205,12 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
163
205
|
richText: (inputObjectTypeConfig, field)=>({
|
|
164
206
|
...inputObjectTypeConfig,
|
|
165
207
|
[field.name]: {
|
|
166
|
-
type: withNullableType(
|
|
208
|
+
type: withNullableType({
|
|
209
|
+
type: GraphQLJSON,
|
|
210
|
+
field,
|
|
211
|
+
forceNullable,
|
|
212
|
+
parentIsLocalized
|
|
213
|
+
})
|
|
167
214
|
}
|
|
168
215
|
}),
|
|
169
216
|
row: (inputObjectTypeConfig, field)=>field.fields.reduce((acc, subField)=>{
|
|
@@ -195,7 +242,12 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
195
242
|
}, {})
|
|
196
243
|
});
|
|
197
244
|
type = field.hasMany ? new GraphQLList(type) : type;
|
|
198
|
-
type = withNullableType(
|
|
245
|
+
type = withNullableType({
|
|
246
|
+
type,
|
|
247
|
+
field,
|
|
248
|
+
forceNullable,
|
|
249
|
+
parentIsLocalized
|
|
250
|
+
});
|
|
199
251
|
return {
|
|
200
252
|
...inputObjectTypeConfig,
|
|
201
253
|
[field.name]: {
|
|
@@ -213,6 +265,7 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
213
265
|
config,
|
|
214
266
|
fields: tab.fields,
|
|
215
267
|
graphqlResult,
|
|
268
|
+
parentIsLocalized: parentIsLocalized || tab.localized,
|
|
216
269
|
parentName: fullName
|
|
217
270
|
});
|
|
218
271
|
if (!type) {
|
|
@@ -243,13 +296,23 @@ export function buildMutationInputType({ name, config, fields, forceNullable = f
|
|
|
243
296
|
text: (inputObjectTypeConfig, field)=>({
|
|
244
297
|
...inputObjectTypeConfig,
|
|
245
298
|
[field.name]: {
|
|
246
|
-
type: withNullableType(
|
|
299
|
+
type: withNullableType({
|
|
300
|
+
type: field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,
|
|
301
|
+
field,
|
|
302
|
+
forceNullable,
|
|
303
|
+
parentIsLocalized
|
|
304
|
+
})
|
|
247
305
|
}
|
|
248
306
|
}),
|
|
249
307
|
textarea: (inputObjectTypeConfig, field)=>({
|
|
250
308
|
...inputObjectTypeConfig,
|
|
251
309
|
[field.name]: {
|
|
252
|
-
type: withNullableType(
|
|
310
|
+
type: withNullableType({
|
|
311
|
+
type: GraphQLString,
|
|
312
|
+
field,
|
|
313
|
+
forceNullable,
|
|
314
|
+
parentIsLocalized
|
|
315
|
+
})
|
|
253
316
|
}
|
|
254
317
|
}),
|
|
255
318
|
upload: (inputObjectTypeConfig, field)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/buildMutationInputType.ts"],"sourcesContent":["import type { GraphQLInputFieldConfig, GraphQLScalarType, 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 RichTextField,\n RowField,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLString,\n} from 'graphql'\nimport { flattenTopLevelFields, toWords } from 'payload'\nimport { fieldAffectsData, optionIsObject, tabHasName } from 'payload/shared'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { groupOrTabHasRequiredSubfield } from '../utilities/groupOrTabHasRequiredSubfield.js'\nimport { withNullableType } from './withNullableType.js'\n\nconst idFieldTypes = {\n number: GraphQLInt,\n text: GraphQLString,\n}\n\nexport const getCollectionIDType = (\n type: keyof typeof idFieldTypes,\n collection: SanitizedCollectionConfig,\n): GraphQLScalarType => {\n const idField = flattenTopLevelFields(collection.fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n if (!idField) {\n return idFieldTypes[type]\n }\n\n return idFieldTypes[idField.type]\n}\n\nexport type InputObjectTypeConfig = {\n [path: string]: GraphQLInputFieldConfig\n}\n\ntype BuildMutationInputTypeArgs = {\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentName: string\n}\n\nexport function buildMutationInputType({\n name,\n config,\n fields,\n forceNullable = false,\n graphqlResult,\n parentName,\n}: BuildMutationInputTypeArgs): GraphQLInputObjectType | null {\n const fieldToSchemaMap = {\n array: (inputObjectTypeConfig: InputObjectTypeConfig, field: ArrayField) => {\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLList<GraphQLType> | GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n type = new GraphQLList(withNullableType(field, type, forceNullable))\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type },\n }\n },\n blocks: (inputObjectTypeConfig: InputObjectTypeConfig, field: BlocksField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: GraphQLJSON },\n }),\n checkbox: (inputObjectTypeConfig: InputObjectTypeConfig, field: CheckboxField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: GraphQLBoolean },\n }),\n code: (inputObjectTypeConfig: InputObjectTypeConfig, field: CodeField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n collapsible: (inputObjectTypeConfig: InputObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((acc, subField: CollapsibleField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n date: (inputObjectTypeConfig: InputObjectTypeConfig, field: DateField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n email: (inputObjectTypeConfig: InputObjectTypeConfig, field: EmailField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n group: (inputObjectTypeConfig: InputObjectTypeConfig, field: GroupField) => {\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type },\n }\n },\n json: (inputObjectTypeConfig: InputObjectTypeConfig, field: JSONField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLJSON, forceNullable) },\n }),\n number: (inputObjectTypeConfig: InputObjectTypeConfig, field: NumberField) => {\n const type = field.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field.hasMany === true ? new GraphQLList(type) : type,\n forceNullable,\n ),\n },\n }\n },\n point: (inputObjectTypeConfig: InputObjectTypeConfig, field: PointField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, new GraphQLList(GraphQLFloat), forceNullable) },\n }),\n radio: (inputObjectTypeConfig: InputObjectTypeConfig, field: RadioField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n relationship: (inputObjectTypeConfig: InputObjectTypeConfig, field: RelationshipField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n richText: (inputObjectTypeConfig: InputObjectTypeConfig, field: RichTextField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLJSON, forceNullable) },\n }),\n row: (inputObjectTypeConfig: InputObjectTypeConfig, field: RowField) =>\n field.fields.reduce((acc, subField: Field) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n select: (inputObjectTypeConfig: InputObjectTypeConfig, field: SelectField) => {\n const formattedName = `${combineParentName(parentName, field.name)}_MutationInput`\n let type: GraphQLType = new GraphQLEnumType({\n name: formattedName,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n })\n\n type = field.hasMany ? new GraphQLList(type) : type\n type = withNullableType(field, type, forceNullable)\n\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type },\n }\n },\n tabs: (inputObjectTypeConfig: InputObjectTypeConfig, field: TabsField) => {\n return field.tabs.reduce((acc, tab) => {\n if (tabHasName(tab)) {\n const fullName = combineParentName(parentName, toWords(tab.name, true))\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: tab.fields,\n graphqlResult,\n parentName: fullName,\n })\n\n if (!type) {\n return acc\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...acc,\n [tab.name]: { type },\n }\n }\n\n return {\n ...acc,\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 }, acc),\n }\n }, inputObjectTypeConfig)\n },\n text: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n forceNullable,\n ),\n },\n }),\n textarea: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextareaField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n upload: (inputObjectTypeConfig: InputObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n }\n\n const fieldName = formatName(name)\n\n const fieldSchemas = fields.reduce((inputObjectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return inputObjectTypeConfig\n }\n\n const schema = fieldSchema(inputObjectTypeConfig, field)\n if (Object.keys(schema).length === 0) {\n return inputObjectTypeConfig\n }\n\n return {\n ...inputObjectTypeConfig,\n ...fieldSchema(inputObjectTypeConfig, field),\n }\n }, {})\n\n if (Object.keys(fieldSchemas).length === 0) {\n return null\n }\n\n return new GraphQLInputObjectType({\n name: `mutation${fieldName}Input`,\n fields: fieldSchemas,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInputObjectType","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLString","flattenTopLevelFields","toWords","fieldAffectsData","optionIsObject","tabHasName","GraphQLJSON","combineParentName","formatName","groupOrTabHasRequiredSubfield","withNullableType","idFieldTypes","number","text","getCollectionIDType","type","collection","idField","fields","find","field","name","buildMutationInputType","config","forceNullable","graphqlResult","parentName","fieldToSchemaMap","array","inputObjectTypeConfig","fullName","blocks","checkbox","code","collapsible","reduce","acc","subField","addSubField","date","email","group","requiresAtLeastOneField","json","hasMany","point","radio","relationship","relationTo","Array","isArray","values","option","value","db","defaultIDType","collections","richText","row","select","formattedName","options","tabs","tab","subFieldSchema","textarea","upload","fieldName","fieldSchemas","fieldSchema","schema","Object","keys","length"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/buildMutationInputType.ts"],"sourcesContent":["import type { GraphQLInputFieldConfig, GraphQLScalarType, 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 RichTextField,\n RowField,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLString,\n} from 'graphql'\nimport { flattenTopLevelFields, toWords } from 'payload'\nimport { fieldAffectsData, optionIsObject, tabHasName } from 'payload/shared'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { groupOrTabHasRequiredSubfield } from '../utilities/groupOrTabHasRequiredSubfield.js'\nimport { withNullableType } from './withNullableType.js'\n\nconst idFieldTypes = {\n number: GraphQLInt,\n text: GraphQLString,\n}\n\nexport const getCollectionIDType = (\n type: keyof typeof idFieldTypes,\n collection: SanitizedCollectionConfig,\n): GraphQLScalarType => {\n const idField = flattenTopLevelFields(collection.fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n if (!idField) {\n return idFieldTypes[type]\n }\n\n return idFieldTypes[idField.type]\n}\n\nexport type InputObjectTypeConfig = {\n [path: string]: GraphQLInputFieldConfig\n}\n\ntype BuildMutationInputTypeArgs = {\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 buildMutationInputType({\n name,\n config,\n fields,\n forceNullable = false,\n graphqlResult,\n parentIsLocalized,\n parentName,\n}: BuildMutationInputTypeArgs): GraphQLInputObjectType | null {\n const fieldToSchemaMap = {\n array: (inputObjectTypeConfig: InputObjectTypeConfig, field: ArrayField) => {\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLList<GraphQLType> | GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n type = new GraphQLList(withNullableType({ type, field, forceNullable, parentIsLocalized }))\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type },\n }\n },\n blocks: (inputObjectTypeConfig: InputObjectTypeConfig, field: BlocksField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: GraphQLJSON },\n }),\n checkbox: (inputObjectTypeConfig: InputObjectTypeConfig, field: CheckboxField) => ({\n ...inputObjectTypeConfig,\n [field.name]: { type: GraphQLBoolean },\n }),\n code: (inputObjectTypeConfig: InputObjectTypeConfig, field: CodeField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n collapsible: (inputObjectTypeConfig: InputObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((acc, subField: CollapsibleField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n date: (inputObjectTypeConfig: InputObjectTypeConfig, field: DateField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n email: (inputObjectTypeConfig: InputObjectTypeConfig, field: EmailField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n group: (inputObjectTypeConfig: InputObjectTypeConfig, field: GroupField) => {\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type },\n }\n },\n json: (inputObjectTypeConfig: InputObjectTypeConfig, field: JSONField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n number: (inputObjectTypeConfig: InputObjectTypeConfig, field: NumberField) => {\n const type = field.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...inputObjectTypeConfig,\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: (inputObjectTypeConfig: InputObjectTypeConfig, field: PointField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: new GraphQLList(GraphQLFloat),\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n radio: (inputObjectTypeConfig: InputObjectTypeConfig, field: RadioField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n relationship: (inputObjectTypeConfig: InputObjectTypeConfig, field: RelationshipField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n richText: (inputObjectTypeConfig: InputObjectTypeConfig, field: RichTextField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n row: (inputObjectTypeConfig: InputObjectTypeConfig, field: RowField) =>\n field.fields.reduce((acc, subField: Field) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n select: (inputObjectTypeConfig: InputObjectTypeConfig, field: SelectField) => {\n const formattedName = `${combineParentName(parentName, field.name)}_MutationInput`\n let type: GraphQLType = new GraphQLEnumType({\n name: formattedName,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n })\n\n type = field.hasMany ? new GraphQLList(type) : type\n type = withNullableType({ type, field, forceNullable, parentIsLocalized })\n\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type },\n }\n },\n tabs: (inputObjectTypeConfig: InputObjectTypeConfig, field: TabsField) => {\n return field.tabs.reduce((acc, tab) => {\n if (tabHasName(tab)) {\n const fullName = combineParentName(parentName, toWords(tab.name, true))\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: tab.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || tab.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return acc\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...acc,\n [tab.name]: { type },\n }\n }\n\n return {\n ...acc,\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 }, acc),\n }\n }, inputObjectTypeConfig)\n },\n text: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextField) => ({\n ...inputObjectTypeConfig,\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: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextareaField) => ({\n ...inputObjectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n upload: (inputObjectTypeConfig: InputObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [field.name]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n }\n\n const fieldName = formatName(name)\n\n const fieldSchemas = fields.reduce((inputObjectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return inputObjectTypeConfig\n }\n\n const schema = fieldSchema(inputObjectTypeConfig, field)\n if (Object.keys(schema).length === 0) {\n return inputObjectTypeConfig\n }\n\n return {\n ...inputObjectTypeConfig,\n ...fieldSchema(inputObjectTypeConfig, field),\n }\n }, {})\n\n if (Object.keys(fieldSchemas).length === 0) {\n return null\n }\n\n return new GraphQLInputObjectType({\n name: `mutation${fieldName}Input`,\n fields: fieldSchemas,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInputObjectType","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLString","flattenTopLevelFields","toWords","fieldAffectsData","optionIsObject","tabHasName","GraphQLJSON","combineParentName","formatName","groupOrTabHasRequiredSubfield","withNullableType","idFieldTypes","number","text","getCollectionIDType","type","collection","idField","fields","find","field","name","buildMutationInputType","config","forceNullable","graphqlResult","parentIsLocalized","parentName","fieldToSchemaMap","array","inputObjectTypeConfig","fullName","localized","blocks","checkbox","code","collapsible","reduce","acc","subField","addSubField","date","email","group","requiresAtLeastOneField","json","hasMany","point","radio","relationship","relationTo","Array","isArray","values","option","value","db","defaultIDType","collections","richText","row","select","formattedName","options","tabs","tab","subFieldSchema","textarea","upload","fieldName","fieldSchemas","fieldSchema","schema","Object","keys","length"],"mappings":"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"}
|
|
@@ -11,8 +11,9 @@ type Args = {
|
|
|
11
11
|
forceNullable?: boolean;
|
|
12
12
|
graphqlResult: GraphQLInfo;
|
|
13
13
|
name: string;
|
|
14
|
+
parentIsLocalized?: boolean;
|
|
14
15
|
parentName: string;
|
|
15
16
|
};
|
|
16
|
-
export declare function buildObjectType({ name, baseFields, config, fields, forceNullable, graphqlResult, parentName, }: Args): GraphQLObjectType;
|
|
17
|
+
export declare function buildObjectType({ name, baseFields, config, fields, forceNullable, graphqlResult, parentIsLocalized, parentName, }: Args): GraphQLObjectType;
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=buildObjectType.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildObjectType.d.ts","sourceRoot":"","sources":["../../src/schema/buildObjectType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,EAQV,KAAK,EACL,WAAW,EAWX,eAAe,EAMhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAchB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,UAAe,EACf,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,UAAU,GACX,EAAE,IAAI,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"buildObjectType.d.ts","sourceRoot":"","sources":["../../src/schema/buildObjectType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,EAQV,KAAK,EACL,WAAW,EAWX,eAAe,EAMhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAchB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,UAAe,EACf,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,UAAU,GACX,EAAE,IAAI,GAAG,iBAAiB,CAk3B1B"}
|
|
@@ -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,7 +37,11 @@ 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
|
},
|
|
@@ -55,6 +64,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
55
64
|
],
|
|
56
65
|
forceNullable,
|
|
57
66
|
graphqlResult,
|
|
67
|
+
parentIsLocalized,
|
|
58
68
|
parentName: interfaceName
|
|
59
69
|
});
|
|
60
70
|
if (Object.keys(objectType.getFields()).length) {
|
|
@@ -78,20 +88,34 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
78
88
|
return {
|
|
79
89
|
...objectTypeConfig,
|
|
80
90
|
[field.name]: {
|
|
81
|
-
type: withNullableType(
|
|
91
|
+
type: withNullableType({
|
|
92
|
+
type,
|
|
93
|
+
field,
|
|
94
|
+
parentIsLocalized
|
|
95
|
+
})
|
|
82
96
|
}
|
|
83
97
|
};
|
|
84
98
|
},
|
|
85
99
|
checkbox: (objectTypeConfig, field)=>({
|
|
86
100
|
...objectTypeConfig,
|
|
87
101
|
[field.name]: {
|
|
88
|
-
type: withNullableType(
|
|
102
|
+
type: withNullableType({
|
|
103
|
+
type: GraphQLBoolean,
|
|
104
|
+
field,
|
|
105
|
+
forceNullable,
|
|
106
|
+
parentIsLocalized
|
|
107
|
+
})
|
|
89
108
|
}
|
|
90
109
|
}),
|
|
91
110
|
code: (objectTypeConfig, field)=>({
|
|
92
111
|
...objectTypeConfig,
|
|
93
112
|
[field.name]: {
|
|
94
|
-
type: withNullableType(
|
|
113
|
+
type: withNullableType({
|
|
114
|
+
type: GraphQLString,
|
|
115
|
+
field,
|
|
116
|
+
forceNullable,
|
|
117
|
+
parentIsLocalized
|
|
118
|
+
})
|
|
95
119
|
}
|
|
96
120
|
}),
|
|
97
121
|
collapsible: (objectTypeConfig, field)=>field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField)=>{
|
|
@@ -104,13 +128,23 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
104
128
|
date: (objectTypeConfig, field)=>({
|
|
105
129
|
...objectTypeConfig,
|
|
106
130
|
[field.name]: {
|
|
107
|
-
type: withNullableType(
|
|
131
|
+
type: withNullableType({
|
|
132
|
+
type: DateTimeResolver,
|
|
133
|
+
field,
|
|
134
|
+
forceNullable,
|
|
135
|
+
parentIsLocalized
|
|
136
|
+
})
|
|
108
137
|
}
|
|
109
138
|
}),
|
|
110
139
|
email: (objectTypeConfig, field)=>({
|
|
111
140
|
...objectTypeConfig,
|
|
112
141
|
[field.name]: {
|
|
113
|
-
type: withNullableType(
|
|
142
|
+
type: withNullableType({
|
|
143
|
+
type: EmailAddressResolver,
|
|
144
|
+
field,
|
|
145
|
+
forceNullable,
|
|
146
|
+
parentIsLocalized
|
|
147
|
+
})
|
|
114
148
|
}
|
|
115
149
|
}),
|
|
116
150
|
group: (objectTypeConfig, field)=>{
|
|
@@ -120,8 +154,13 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
120
154
|
name: interfaceName,
|
|
121
155
|
config,
|
|
122
156
|
fields: field.fields,
|
|
123
|
-
forceNullable: isFieldNullable(
|
|
157
|
+
forceNullable: isFieldNullable({
|
|
158
|
+
field,
|
|
159
|
+
forceNullable,
|
|
160
|
+
parentIsLocalized
|
|
161
|
+
}),
|
|
124
162
|
graphqlResult,
|
|
163
|
+
parentIsLocalized: field.localized || parentIsLocalized,
|
|
125
164
|
parentName: interfaceName
|
|
126
165
|
});
|
|
127
166
|
if (Object.keys(objectType.getFields()).length) {
|
|
@@ -151,7 +190,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
151
190
|
name: joinName,
|
|
152
191
|
fields: {
|
|
153
192
|
docs: {
|
|
154
|
-
type: new GraphQLList(graphqlResult.collections[field.collection].graphQL.type)
|
|
193
|
+
type: Array.isArray(field.collection) ? GraphQLJSON : new GraphQLList(graphqlResult.collections[field.collection].graphQL.type)
|
|
155
194
|
},
|
|
156
195
|
hasNextPage: {
|
|
157
196
|
type: GraphQLBoolean
|
|
@@ -162,11 +201,14 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
162
201
|
limit: {
|
|
163
202
|
type: GraphQLInt
|
|
164
203
|
},
|
|
204
|
+
page: {
|
|
205
|
+
type: GraphQLInt
|
|
206
|
+
},
|
|
165
207
|
sort: {
|
|
166
208
|
type: GraphQLString
|
|
167
209
|
},
|
|
168
210
|
where: {
|
|
169
|
-
type: graphqlResult.collections[field.collection].graphQL.whereInputType
|
|
211
|
+
type: Array.isArray(field.collection) ? GraphQLJSON : graphqlResult.collections[field.collection].graphQL.whereInputType
|
|
170
212
|
}
|
|
171
213
|
},
|
|
172
214
|
extensions: {
|
|
@@ -174,13 +216,16 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
174
216
|
},
|
|
175
217
|
async resolve (parent, args, context) {
|
|
176
218
|
const { collection } = field;
|
|
177
|
-
const { limit, sort, where } = args;
|
|
219
|
+
const { limit, page, sort, where } = args;
|
|
178
220
|
const { req } = context;
|
|
179
221
|
const fullWhere = combineQueries(where, {
|
|
180
222
|
[field.on]: {
|
|
181
223
|
equals: parent._id ?? parent.id
|
|
182
224
|
}
|
|
183
225
|
});
|
|
226
|
+
if (Array.isArray(collection)) {
|
|
227
|
+
throw new Error('GraphQL with array of join.field.collection is not implemented');
|
|
228
|
+
}
|
|
184
229
|
return await req.payload.find({
|
|
185
230
|
collection,
|
|
186
231
|
depth: 0,
|
|
@@ -188,6 +233,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
188
233
|
limit,
|
|
189
234
|
locale: req.locale,
|
|
190
235
|
overrideAccess: false,
|
|
236
|
+
page,
|
|
191
237
|
req,
|
|
192
238
|
sort,
|
|
193
239
|
where: fullWhere
|
|
@@ -202,7 +248,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
202
248
|
json: (objectTypeConfig, field)=>({
|
|
203
249
|
...objectTypeConfig,
|
|
204
250
|
[field.name]: {
|
|
205
|
-
type: withNullableType(
|
|
251
|
+
type: withNullableType({
|
|
252
|
+
type: GraphQLJSON,
|
|
253
|
+
field,
|
|
254
|
+
forceNullable,
|
|
255
|
+
parentIsLocalized
|
|
256
|
+
})
|
|
206
257
|
}
|
|
207
258
|
}),
|
|
208
259
|
number: (objectTypeConfig, field)=>{
|
|
@@ -210,23 +261,38 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
210
261
|
return {
|
|
211
262
|
...objectTypeConfig,
|
|
212
263
|
[field.name]: {
|
|
213
|
-
type: withNullableType(
|
|
264
|
+
type: withNullableType({
|
|
265
|
+
type: field?.hasMany === true ? new GraphQLList(type) : type,
|
|
266
|
+
field,
|
|
267
|
+
forceNullable,
|
|
268
|
+
parentIsLocalized
|
|
269
|
+
})
|
|
214
270
|
}
|
|
215
271
|
};
|
|
216
272
|
},
|
|
217
273
|
point: (objectTypeConfig, field)=>({
|
|
218
274
|
...objectTypeConfig,
|
|
219
275
|
[field.name]: {
|
|
220
|
-
type: withNullableType(
|
|
276
|
+
type: withNullableType({
|
|
277
|
+
type: new GraphQLList(new GraphQLNonNull(GraphQLFloat)),
|
|
278
|
+
field,
|
|
279
|
+
forceNullable,
|
|
280
|
+
parentIsLocalized
|
|
281
|
+
})
|
|
221
282
|
}
|
|
222
283
|
}),
|
|
223
284
|
radio: (objectTypeConfig, field)=>({
|
|
224
285
|
...objectTypeConfig,
|
|
225
286
|
[field.name]: {
|
|
226
|
-
type: withNullableType(
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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
|
+
})
|
|
230
296
|
}
|
|
231
297
|
}),
|
|
232
298
|
relationship: (objectTypeConfig, field)=>{
|
|
@@ -293,7 +359,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
293
359
|
};
|
|
294
360
|
}
|
|
295
361
|
const relationship = {
|
|
296
|
-
type: withNullableType(
|
|
362
|
+
type: withNullableType({
|
|
363
|
+
type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,
|
|
364
|
+
field,
|
|
365
|
+
forceNullable,
|
|
366
|
+
parentIsLocalized
|
|
367
|
+
}),
|
|
297
368
|
args: relationshipArgs,
|
|
298
369
|
extensions: {
|
|
299
370
|
complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10
|
|
@@ -396,7 +467,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
396
467
|
richText: (objectTypeConfig, field)=>({
|
|
397
468
|
...objectTypeConfig,
|
|
398
469
|
[field.name]: {
|
|
399
|
-
type: withNullableType(
|
|
470
|
+
type: withNullableType({
|
|
471
|
+
type: GraphQLJSON,
|
|
472
|
+
field,
|
|
473
|
+
forceNullable,
|
|
474
|
+
parentIsLocalized
|
|
475
|
+
}),
|
|
400
476
|
args: {
|
|
401
477
|
depth: {
|
|
402
478
|
type: GraphQLInt
|
|
@@ -433,6 +509,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
433
509
|
findMany: false,
|
|
434
510
|
flattenLocales: false,
|
|
435
511
|
overrideAccess: false,
|
|
512
|
+
parentIsLocalized,
|
|
436
513
|
populationPromises,
|
|
437
514
|
req: context.req,
|
|
438
515
|
showHiddenFields: false,
|
|
@@ -459,7 +536,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
459
536
|
values: formatOptions(field)
|
|
460
537
|
});
|
|
461
538
|
type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type;
|
|
462
|
-
type = withNullableType(
|
|
539
|
+
type = withNullableType({
|
|
540
|
+
type,
|
|
541
|
+
field,
|
|
542
|
+
forceNullable,
|
|
543
|
+
parentIsLocalized
|
|
544
|
+
});
|
|
463
545
|
return {
|
|
464
546
|
...objectTypeConfig,
|
|
465
547
|
[field.name]: {
|
|
@@ -477,6 +559,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
477
559
|
fields: tab.fields,
|
|
478
560
|
forceNullable,
|
|
479
561
|
graphqlResult,
|
|
562
|
+
parentIsLocalized: tab.localized || parentIsLocalized,
|
|
480
563
|
parentName: interfaceName
|
|
481
564
|
});
|
|
482
565
|
if (Object.keys(objectType.getFields()).length) {
|
|
@@ -513,13 +596,23 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
513
596
|
text: (objectTypeConfig, field)=>({
|
|
514
597
|
...objectTypeConfig,
|
|
515
598
|
[field.name]: {
|
|
516
|
-
type: withNullableType(
|
|
599
|
+
type: withNullableType({
|
|
600
|
+
type: field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,
|
|
601
|
+
field,
|
|
602
|
+
forceNullable,
|
|
603
|
+
parentIsLocalized
|
|
604
|
+
})
|
|
517
605
|
}
|
|
518
606
|
}),
|
|
519
607
|
textarea: (objectTypeConfig, field)=>({
|
|
520
608
|
...objectTypeConfig,
|
|
521
609
|
[field.name]: {
|
|
522
|
-
type: withNullableType(
|
|
610
|
+
type: withNullableType({
|
|
611
|
+
type: GraphQLString,
|
|
612
|
+
field,
|
|
613
|
+
forceNullable,
|
|
614
|
+
parentIsLocalized
|
|
615
|
+
})
|
|
523
616
|
}
|
|
524
617
|
}),
|
|
525
618
|
upload: (objectTypeConfig, field)=>{
|
|
@@ -584,7 +677,12 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
|
|
|
584
677
|
};
|
|
585
678
|
}
|
|
586
679
|
const relationship = {
|
|
587
|
-
type: withNullableType(
|
|
680
|
+
type: withNullableType({
|
|
681
|
+
type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,
|
|
682
|
+
field,
|
|
683
|
+
forceNullable,
|
|
684
|
+
parentIsLocalized
|
|
685
|
+
}),
|
|
588
686
|
args: relationshipArgs,
|
|
589
687
|
extensions: {
|
|
590
688
|
complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10
|