@webiny/api-headless-cms 0.0.0-unstable.9e825fd5fb → 0.0.0-unstable.aa00eecd97
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/context.js +4 -3
- package/context.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +34 -5
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry.crud.d.ts +4 -4
- package/crud/contentEntry.crud.js +207 -106
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/beforeDelete.d.ts +1 -1
- package/crud/contentModel/beforeDelete.js +1 -5
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/validation.d.ts +48 -16
- package/crud/contentModel/validation.js +2 -2
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.js +1 -7
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/graphql/checkEndpointAccess.d.ts +2 -0
- package/graphql/checkEndpointAccess.js +18 -0
- package/graphql/checkEndpointAccess.js.map +1 -0
- package/graphql/createRequestBody.d.ts +2 -0
- package/graphql/createRequestBody.js +14 -0
- package/graphql/createRequestBody.js.map +1 -0
- package/graphql/formatErrorPayload.d.ts +1 -0
- package/graphql/formatErrorPayload.js +25 -0
- package/graphql/formatErrorPayload.js.map +1 -0
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/getSchema.d.ts +17 -0
- package/graphql/getSchema.js +102 -0
- package/graphql/getSchema.js.map +1 -0
- package/graphql/graphQLHandlerFactory.js +5 -190
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/handleRequest.d.ts +11 -0
- package/graphql/handleRequest.js +81 -0
- package/graphql/handleRequest.js.map +1 -0
- package/graphql/schema/baseSchema.js +15 -0
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +6 -12
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
- package/graphql/schema/createFieldTypePluginRecords.js +13 -0
- package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
- package/graphql/schema/createManageResolvers.js +4 -0
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +34 -26
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createReadSDL.js +22 -19
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +13 -3
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +20 -0
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +18 -0
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
- package/graphql/schema/schemaPlugins.js +2 -11
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +44 -17
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +7 -7
- package/graphqlFields/ref.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +13 -9
- package/index.js.map +1 -1
- package/package.json +35 -35
- package/plugins/CmsModelPlugin.d.ts +3 -1
- package/plugins/CmsModelPlugin.js +5 -5
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
- package/plugins/StorageOperationsCmsModelPlugin.js +42 -0
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
- package/plugins/index.d.ts +1 -0
- package/plugins/index.js +11 -0
- package/plugins/index.js.map +1 -1
- package/types.d.ts +122 -71
- package/types.js +11 -0
- package/types.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
- package/utils/converters/valueKeyStorageConverter.js +24 -25
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.js +1 -2
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.d.ts +0 -2
- package/utils/createTypeName.js +2 -10
- package/utils/createTypeName.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +1 -3
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.d.ts +1 -1
- package/utils/getEntryDescription.js.map +1 -1
- package/utils/getEntryImage.d.ts +1 -1
- package/utils/getEntryImage.js.map +1 -1
- package/utils/getEntryTitle.d.ts +1 -1
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/renderFields.d.ts +2 -1
- package/utils/renderFields.js +2 -1
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.d.ts +2 -2
- package/utils/renderGetFilterFields.js +7 -20
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +2 -1
- package/utils/renderInputFields.js +14 -6
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.d.ts +2 -1
- package/utils/renderListFilterFields.js +9 -20
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +2 -1
- package/utils/renderSortEnum.js +2 -1
- package/utils/renderSortEnum.js.map +1 -1
- package/crud/contentModel/createFieldModels.d.ts +0 -2
- package/crud/contentModel/createFieldModels.js +0 -26
- package/crud/contentModel/createFieldModels.js.map +0 -1
- package/crud/contentModel/fieldIdValidation.d.ts +0 -1
- package/crud/contentModel/fieldIdValidation.js +0 -25
- package/crud/contentModel/fieldIdValidation.js.map +0 -1
- package/crud/contentModel/idValidation.d.ts +0 -1
- package/crud/contentModel/idValidation.js +0 -22
- package/crud/contentModel/idValidation.js.map +0 -1
- package/crud/contentModel/models.d.ts +0 -4
- package/crud/contentModel/models.js +0 -192
- package/crud/contentModel/models.js.map +0 -1
- package/crud/contentModel/systemFields.d.ts +0 -1
- package/crud/contentModel/systemFields.js +0 -8
- package/crud/contentModel/systemFields.js.map +0 -1
- package/upgrades/5.33.0/index.d.ts +0 -3
- package/upgrades/5.33.0/index.js +0 -182
- package/upgrades/5.33.0/index.js.map +0 -1
- package/upgrades/index.d.ts +0 -1
- package/upgrades/index.js +0 -12
- package/upgrades/index.js.map +0 -1
- package/utils/pluralizedTypeName.d.ts +0 -1
- package/utils/pluralizedTypeName.js +0 -26
- package/utils/pluralizedTypeName.js.map +0 -1
|
@@ -15,34 +15,38 @@ const createManageSDL = ({
|
|
|
15
15
|
fieldTypePlugins,
|
|
16
16
|
sorterPlugins
|
|
17
17
|
}) => {
|
|
18
|
+
const inputFields = (0, _renderInputFields.renderInputFields)({
|
|
19
|
+
models,
|
|
20
|
+
model,
|
|
21
|
+
fields: model.fields,
|
|
22
|
+
fieldTypePlugins
|
|
23
|
+
});
|
|
24
|
+
if (inputFields.length === 0) {
|
|
25
|
+
return "";
|
|
26
|
+
}
|
|
18
27
|
const listFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
|
|
19
28
|
model,
|
|
29
|
+
fields: model.fields,
|
|
20
30
|
type: "manage",
|
|
21
31
|
fieldTypePlugins
|
|
22
32
|
});
|
|
23
33
|
const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
|
|
24
34
|
model,
|
|
35
|
+
fields: model.fields,
|
|
25
36
|
fieldTypePlugins,
|
|
26
37
|
sorterPlugins
|
|
27
38
|
});
|
|
28
39
|
const getFilterFieldsRender = (0, _renderGetFilterFields.renderGetFilterFields)({
|
|
29
|
-
model,
|
|
30
|
-
fieldTypePlugins
|
|
31
|
-
});
|
|
32
|
-
const inputFields = (0, _renderInputFields.renderInputFields)({
|
|
33
|
-
models,
|
|
34
|
-
model,
|
|
40
|
+
fields: model.fields,
|
|
35
41
|
fieldTypePlugins
|
|
36
42
|
});
|
|
37
43
|
const fields = (0, _renderFields.renderFields)({
|
|
38
44
|
models,
|
|
39
45
|
model,
|
|
46
|
+
fields: model.fields,
|
|
40
47
|
type: "manage",
|
|
41
48
|
fieldTypePlugins
|
|
42
49
|
});
|
|
43
|
-
if (inputFields.length === 0) {
|
|
44
|
-
return "";
|
|
45
|
-
}
|
|
46
50
|
const {
|
|
47
51
|
singularApiName: singularName,
|
|
48
52
|
pluralApiName: pluralName
|
|
@@ -81,25 +85,26 @@ const createManageSDL = ({
|
|
|
81
85
|
data: JSON
|
|
82
86
|
}
|
|
83
87
|
|
|
84
|
-
${fields.map(f => f.typeDefs).
|
|
88
|
+
${fields.map(f => f.typeDefs).join("\n")}
|
|
89
|
+
|
|
90
|
+
${inputFields.map(f => f.typeDefs).join("\n")}
|
|
85
91
|
|
|
86
|
-
${inputFields.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
87
92
|
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
input ${singularName}Input {
|
|
94
|
+
id: ID
|
|
90
95
|
${inputFields.map(f => f.fields).join("\n")}
|
|
91
|
-
}
|
|
96
|
+
}
|
|
92
97
|
|
|
93
|
-
|
|
98
|
+
input ${singularName}GetWhereInput {
|
|
94
99
|
${getFilterFieldsRender}
|
|
95
|
-
}
|
|
100
|
+
}
|
|
96
101
|
|
|
102
|
+
input ${singularName}ListWhereInput {
|
|
103
|
+
${listFilterFieldsRender}
|
|
104
|
+
AND: [${singularName}ListWhereInput!]
|
|
105
|
+
OR: [${singularName}ListWhereInput!]
|
|
106
|
+
}
|
|
97
107
|
|
|
98
|
-
${listFilterFieldsRender && `input ${singularName}ListWhereInput {
|
|
99
|
-
${listFilterFieldsRender}
|
|
100
|
-
AND: [${singularName}ListWhereInput!]
|
|
101
|
-
OR: [${singularName}ListWhereInput!]
|
|
102
|
-
}`}
|
|
103
108
|
|
|
104
109
|
type ${singularName}Response {
|
|
105
110
|
data: ${singularName}
|
|
@@ -117,9 +122,10 @@ const createManageSDL = ({
|
|
|
117
122
|
error: CmsError
|
|
118
123
|
}
|
|
119
124
|
|
|
120
|
-
|
|
125
|
+
|
|
126
|
+
enum ${singularName}ListSorter {
|
|
121
127
|
${sortEnumRender}
|
|
122
|
-
}
|
|
128
|
+
}
|
|
123
129
|
|
|
124
130
|
extend type Query {
|
|
125
131
|
get${singularName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${singularName}Response
|
|
@@ -138,12 +144,14 @@ const createManageSDL = ({
|
|
|
138
144
|
|
|
139
145
|
extend type Mutation {
|
|
140
146
|
create${singularName}(data: ${singularName}Input!): ${singularName}Response
|
|
141
|
-
|
|
147
|
+
|
|
142
148
|
create${singularName}From(revision: ID!, data: ${singularName}Input): ${singularName}Response
|
|
143
149
|
|
|
144
150
|
update${singularName}(revision: ID!, data: ${singularName}Input!): ${singularName}Response
|
|
145
|
-
|
|
146
|
-
|
|
151
|
+
|
|
152
|
+
delete${singularName}(revision: ID!, options: CmsDeleteEntryOptions): CmsDeleteResponse
|
|
153
|
+
|
|
154
|
+
deleteMultiple${pluralName}(entries: [ID!]!): CmsDeleteMultipleResponse!
|
|
147
155
|
|
|
148
156
|
publish${singularName}(revision: ID!): ${singularName}Response
|
|
149
157
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createManageSDL","models","model","fieldTypePlugins","sorterPlugins","
|
|
1
|
+
{"version":3,"names":["createManageSDL","models","model","fieldTypePlugins","sorterPlugins","inputFields","renderInputFields","fields","length","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","renderFields","singularApiName","singularName","pluralApiName","pluralName","description","map","f","join","typeDefs"],"sources":["createManageSDL.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\n\ninterface CreateManageSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\n\ninterface CreateManageSDL {\n (params: CreateManageSDLParams): string;\n}\n\nexport const createManageSDL: CreateManageSDL = ({\n models,\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins,\n sorterPlugins\n });\n const getFilterFieldsRender = renderGetFilterFields({\n fields: model.fields,\n fieldTypePlugins\n });\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const { singularApiName: singularName, pluralApiName: pluralName } = model;\n\n return /* GraphQL */ `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsIdentity!\n ownedBy: CmsIdentity!\n modifiedBy: CmsIdentity\n meta: ${singularName}Meta\n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${singularName}Meta {\n modelId: String\n version: Int\n locked: Boolean\n publishedOn: DateTime\n status: String\n \"\"\"\n CAUTION: this field is resolved by making an extra query to DB.\n RECOMMENDATION: Use it only with \"get\" queries (avoid in \"list\")\n \"\"\"\n revisions: [${singularName}!]\n title: String\n description: String\n image: String\n \"\"\"\n Custom meta data stored in the root of the entry object.\n \"\"\"\n data: JSON\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n\n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n\n\n input ${singularName}Input {\n id: ID\n ${inputFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input ${singularName}GetWhereInput {\n ${getFilterFieldsRender}\n }\n\n input ${singularName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${singularName}ListWhereInput!]\n OR: [${singularName}ListWhereInput!]\n }\n\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n\n type ${singularName}ArrayResponse {\n data: [${singularName}]\n error: CmsError\n }\n\n type ${singularName}ListResponse {\n data: [${singularName}]\n meta: CmsListMeta\n error: CmsError\n }\n\n\n enum ${singularName}ListSorter {\n ${sortEnumRender}\n }\n\n extend type Query {\n get${singularName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${singularName}Response\n \n get${singularName}Revisions(id: ID!): ${singularName}ArrayResponse\n \n get${pluralName}ByIds(revisions: [ID!]!): ${singularName}ArrayResponse\n \n list${pluralName} (\n where: ${singularName}ListWhereInput\n sort: [${singularName}ListSorter]\n limit: Int\n after: String\n ): ${singularName}ListResponse\n }\n\n extend type Mutation {\n create${singularName}(data: ${singularName}Input!): ${singularName}Response\n\n create${singularName}From(revision: ID!, data: ${singularName}Input): ${singularName}Response\n \n update${singularName}(revision: ID!, data: ${singularName}Input!): ${singularName}Response\n\n delete${singularName}(revision: ID!, options: CmsDeleteEntryOptions): CmsDeleteResponse\n\n deleteMultiple${pluralName}(entries: [ID!]!): CmsDeleteMultipleResponse!\n \n publish${singularName}(revision: ID!): ${singularName}Response\n \n republish${singularName}(revision: ID!): ${singularName}Response\n \n unpublish${singularName}(revision: ID!): ${singularName}Response\n }\n `;\n};\n"],"mappings":"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"}
|
|
@@ -15,29 +15,32 @@ const createReadSDL = ({
|
|
|
15
15
|
sorterPlugins
|
|
16
16
|
}) => {
|
|
17
17
|
const type = "read";
|
|
18
|
+
const fieldsRender = (0, _renderFields.renderFields)({
|
|
19
|
+
models,
|
|
20
|
+
model,
|
|
21
|
+
fields: model.fields,
|
|
22
|
+
type,
|
|
23
|
+
fieldTypePlugins
|
|
24
|
+
});
|
|
25
|
+
if (fieldsRender.length === 0) {
|
|
26
|
+
return "";
|
|
27
|
+
}
|
|
18
28
|
const listFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
|
|
19
29
|
model,
|
|
30
|
+
fields: model.fields,
|
|
20
31
|
type,
|
|
21
32
|
fieldTypePlugins
|
|
22
33
|
});
|
|
23
34
|
const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
|
|
24
35
|
model,
|
|
36
|
+
fields: model.fields,
|
|
25
37
|
fieldTypePlugins,
|
|
26
38
|
sorterPlugins
|
|
27
39
|
});
|
|
28
40
|
const getFilterFieldsRender = (0, _renderGetFilterFields.renderGetFilterFields)({
|
|
29
|
-
model,
|
|
30
|
-
fieldTypePlugins
|
|
31
|
-
});
|
|
32
|
-
const fieldsRender = (0, _renderFields.renderFields)({
|
|
33
|
-
models,
|
|
34
|
-
model,
|
|
35
|
-
type,
|
|
41
|
+
fields: model.fields,
|
|
36
42
|
fieldTypePlugins
|
|
37
43
|
});
|
|
38
|
-
if (fieldsRender.length === 0) {
|
|
39
|
-
return "";
|
|
40
|
-
}
|
|
41
44
|
const hasModelIdField = model.fields.some(f => f.fieldId === "modelId");
|
|
42
45
|
const {
|
|
43
46
|
singularApiName: singularName,
|
|
@@ -58,21 +61,21 @@ const createReadSDL = ({
|
|
|
58
61
|
|
|
59
62
|
${fieldsRender.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
input ${singularName}GetWhereInput {
|
|
62
65
|
${getFilterFieldsRender}
|
|
63
|
-
}
|
|
66
|
+
}
|
|
64
67
|
|
|
65
68
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
69
|
+
input ${singularName}ListWhereInput {
|
|
70
|
+
${listFilterFieldsRender}
|
|
71
|
+
AND: [${singularName}ListWhereInput!]
|
|
72
|
+
OR: [${singularName}ListWhereInput!]
|
|
73
|
+
}
|
|
71
74
|
|
|
72
75
|
|
|
73
|
-
|
|
76
|
+
enum ${singularName}ListSorter {
|
|
74
77
|
${sortEnumRender}
|
|
75
|
-
}
|
|
78
|
+
}
|
|
76
79
|
|
|
77
80
|
type ${singularName}Response {
|
|
78
81
|
data: ${singularName}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createReadSDL","models","model","fieldTypePlugins","sorterPlugins","type","
|
|
1
|
+
{"version":3,"names":["createReadSDL","models","model","fieldTypePlugins","sorterPlugins","type","fieldsRender","renderFields","fields","length","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","hasModelIdField","some","f","fieldId","singularApiName","singularName","pluralApiName","pluralName","description","map","join","typeDefs","filter","Boolean"],"sources":["createReadSDL.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, ApiEndpoint } from \"~/types\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\n\ninterface CreateReadSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\ninterface CreateReadSDL {\n (params: CreateReadSDLParams): string;\n}\n\nexport const createReadSDL: CreateReadSDL = ({\n models,\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const type: ApiEndpoint = \"read\";\n\n const fieldsRender = renderFields({\n models,\n model,\n fields: model.fields,\n type,\n fieldTypePlugins\n });\n\n if (fieldsRender.length === 0) {\n return \"\";\n }\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type,\n fieldTypePlugins\n });\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins,\n sorterPlugins\n });\n const getFilterFieldsRender = renderGetFilterFields({\n fields: model.fields,\n fieldTypePlugins\n });\n\n const hasModelIdField = model.fields.some(f => f.fieldId === \"modelId\");\n\n const { singularApiName: singularName, pluralApiName: pluralName } = model;\n\n return `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n ${hasModelIdField ? \"\" : \"modelId: String!\"}\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsIdentity!\n ownedBy: CmsIdentity!\n ${fieldsRender.map(f => f.fields).join(\"\\n\")}\n }\n \n ${fieldsRender\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n \n input ${singularName}GetWhereInput {\n ${getFilterFieldsRender}\n }\n \n \n input ${singularName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${singularName}ListWhereInput!]\n OR: [${singularName}ListWhereInput!]\n }\n \n \n enum ${singularName}ListSorter {\n ${sortEnumRender}\n }\n \n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n type ${singularName}ListResponse {\n data: [${singularName}]\n meta: CmsListMeta\n error: CmsError\n }\n \n extend type Query {\n get${singularName}(where: ${singularName}GetWhereInput!): ${singularName}Response\n\n list${pluralName}(\n where: ${singularName}ListWhereInput\n sort: [${singularName}ListSorter]\n limit: Int\n after: String\n ): ${singularName}ListResponse\n }\n `;\n};\n"],"mappings":";;;;;;AACA;AACA;AACA;AACA;AAaO,MAAMA,aAA4B,GAAG,CAAC;EACzCC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,MAAMC,IAAiB,GAAG,MAAM;EAEhC,MAAMC,YAAY,GAAG,IAAAC,0BAAY,EAAC;IAC9BN,MAAM;IACNC,KAAK;IACLM,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBH,IAAI;IACJF;EACJ,CAAC,CAAC;EAEF,IAAIG,YAAY,CAACG,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO,EAAE;EACb;EACA,MAAMC,sBAAsB,GAAG,IAAAC,8CAAsB,EAAC;IAClDT,KAAK;IACLM,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBH,IAAI;IACJF;EACJ,CAAC,CAAC;EACF,MAAMS,cAAc,GAAG,IAAAC,8BAAc,EAAC;IAClCX,KAAK;IACLM,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBL,gBAAgB;IAChBC;EACJ,CAAC,CAAC;EACF,MAAMU,qBAAqB,GAAG,IAAAC,4CAAqB,EAAC;IAChDP,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBL;EACJ,CAAC,CAAC;EAEF,MAAMa,eAAe,GAAGd,KAAK,CAACM,MAAM,CAACS,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,OAAO,KAAK,SAAS,CAAC;EAEvE,MAAM;IAAEC,eAAe,EAAEC,YAAY;IAAEC,aAAa,EAAEC;EAAW,CAAC,GAAGrB,KAAK;EAE1E,OAAQ;AACZ,aAAaA,KAAK,CAACsB,WAAW,IAAIH,YAAa;AAC/C,eAAeA,YAAa;AAC5B;AACA;AACA,cAAcL,eAAe,GAAG,EAAE,GAAG,kBAAmB;AACxD;AACA;AACA;AACA;AACA,cAAcV,YAAY,CAACmB,GAAG,CAACP,CAAC,IAAIA,CAAC,CAACV,MAAM,CAAC,CAACkB,IAAI,CAAC,IAAI,CAAE;AACzD;AACA;AACA,UAAUpB,YAAY,CACTmB,GAAG,CAACP,CAAC,IAAIA,CAAC,CAACS,QAAQ,CAAC,CACpBC,MAAM,CAACC,OAAO,CAAC,CACfH,IAAI,CAAC,IAAI,CAAE;AACxB;AACA,gBAAgBL,YAAa;AAC7B,cAAcP,qBAAsB;AACpC;AACA;AACA;AACA,gBAAgBO,YAAa;AAC7B,cAAcX,sBAAuB;AACrC,oBAAoBW,YAAa;AACjC,mBAAmBA,YAAa;AAChC;AACA;AACA;AACA,eAAeA,YAAa;AAC5B,cAAcT,cAAe;AAC7B;AACA;AACA,eAAeS,YAAa;AAC5B,oBAAoBA,YAAa;AACjC;AACA;AACA;AACA,eAAeA,YAAa;AAC5B,qBAAqBA,YAAa;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiBA,YAAa,WAAUA,YAAa,oBAAmBA,YAAa;AACrF;AACA,kBAAkBE,UAAW;AAC7B,yBAAyBF,YAAa;AACtC,yBAAyBA,YAAa;AACtC;AACA;AACA,iBAAiBA,YAAa;AAC9B;AACA,KAAK;AACL,CAAC;AAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
|
|
1
|
+
import { CmsDeleteEntryOptions, CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
|
|
2
2
|
interface ResolveDeleteArgs {
|
|
3
3
|
revision: string;
|
|
4
|
+
options?: CmsDeleteEntryOptions;
|
|
4
5
|
}
|
|
5
6
|
declare type ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;
|
|
6
7
|
export declare const resolveDelete: ResolveDelete;
|
|
@@ -10,13 +10,23 @@ const resolveDelete = ({
|
|
|
10
10
|
model
|
|
11
11
|
}) => async (_, args, context) => {
|
|
12
12
|
try {
|
|
13
|
+
const {
|
|
14
|
+
revision,
|
|
15
|
+
options: deleteOptions
|
|
16
|
+
} = args || {};
|
|
13
17
|
const {
|
|
14
18
|
version
|
|
15
|
-
} = (0, _utils.parseIdentifier)(
|
|
19
|
+
} = (0, _utils.parseIdentifier)(revision);
|
|
16
20
|
if (version) {
|
|
17
|
-
await context.cms.deleteEntryRevision(model,
|
|
21
|
+
await context.cms.deleteEntryRevision(model, revision);
|
|
18
22
|
} else {
|
|
19
|
-
|
|
23
|
+
/**
|
|
24
|
+
* @see CmsDeleteEntryOptions
|
|
25
|
+
*/
|
|
26
|
+
const options = {
|
|
27
|
+
force: (deleteOptions === null || deleteOptions === void 0 ? void 0 : deleteOptions.force) === true
|
|
28
|
+
};
|
|
29
|
+
await context.cms.deleteEntry(model, revision, options);
|
|
20
30
|
}
|
|
21
31
|
return new _responses.Response(true);
|
|
22
32
|
} catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolveDelete","model","_","args","context","
|
|
1
|
+
{"version":3,"names":["resolveDelete","model","_","args","context","revision","options","deleteOptions","version","parseIdentifier","cms","deleteEntryRevision","force","deleteEntry","Response","e","ErrorResponse"],"sources":["resolveDelete.ts"],"sourcesContent":["import { ErrorResponse, Response } from \"@webiny/handler-graphql/responses\";\nimport { CmsDeleteEntryOptions, CmsEntryResolverFactory as ResolverFactory } from \"~/types\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface ResolveDeleteArgs {\n revision: string;\n options?: CmsDeleteEntryOptions;\n}\ntype ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;\n\nexport const resolveDelete: ResolveDelete =\n ({ model }) =>\n async (_, args, context) => {\n try {\n const { revision, options: deleteOptions } = args || {};\n const { version } = parseIdentifier(revision);\n if (version) {\n await context.cms.deleteEntryRevision(model, revision);\n } else {\n /**\n * @see CmsDeleteEntryOptions\n */\n const options: CmsDeleteEntryOptions = {\n force: deleteOptions?.force === true\n };\n await context.cms.deleteEntry(model, revision, options);\n }\n\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n };\n"],"mappings":";;;;;;AAAA;AAEA;AAQO,MAAMA,aAA4B,GACrC,CAAC;EAAEC;AAAM,CAAC,KACV,OAAOC,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;EACxB,IAAI;IACA,MAAM;MAAEC,QAAQ;MAAEC,OAAO,EAAEC;IAAc,CAAC,GAAGJ,IAAI,IAAI,CAAC,CAAC;IACvD,MAAM;MAAEK;IAAQ,CAAC,GAAG,IAAAC,sBAAe,EAACJ,QAAQ,CAAC;IAC7C,IAAIG,OAAO,EAAE;MACT,MAAMJ,OAAO,CAACM,GAAG,CAACC,mBAAmB,CAACV,KAAK,EAAEI,QAAQ,CAAC;IAC1D,CAAC,MAAM;MACH;AAChB;AACA;MACgB,MAAMC,OAA8B,GAAG;QACnCM,KAAK,EAAE,CAAAL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,KAAK,MAAK;MACpC,CAAC;MACD,MAAMR,OAAO,CAACM,GAAG,CAACG,WAAW,CAACZ,KAAK,EAAEI,QAAQ,EAAEC,OAAO,CAAC;IAC3D;IAEA,OAAO,IAAIQ,mBAAQ,CAAC,IAAI,CAAC;EAC7B,CAAC,CAAC,OAAOC,CAAC,EAAE;IACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;EAC/B;AACJ,CAAC;AAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
|
|
2
|
+
interface ResolveDeleteArgs {
|
|
3
|
+
revision: string;
|
|
4
|
+
}
|
|
5
|
+
declare type ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;
|
|
6
|
+
export declare const resolveDeleteMultiple: ResolveDelete;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveDeleteMultiple = void 0;
|
|
7
|
+
var _responses = require("@webiny/handler-graphql/responses");
|
|
8
|
+
const resolveDeleteMultiple = ({
|
|
9
|
+
model
|
|
10
|
+
}) => async (_, args, context) => {
|
|
11
|
+
try {
|
|
12
|
+
const response = await context.cms.deleteMultipleEntries(model, {
|
|
13
|
+
entries: (args === null || args === void 0 ? void 0 : args.entries) || []
|
|
14
|
+
});
|
|
15
|
+
return new _responses.ListResponse(response);
|
|
16
|
+
} catch (e) {
|
|
17
|
+
return new _responses.ErrorResponse(e);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.resolveDeleteMultiple = resolveDeleteMultiple;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["resolveDeleteMultiple","model","_","args","context","response","cms","deleteMultipleEntries","entries","ListResponse","e","ErrorResponse"],"sources":["resolveDeleteMultiple.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { CmsEntryResolverFactory as ResolverFactory } from \"~/types\";\n\ninterface ResolveDeleteArgs {\n revision: string;\n}\n\ntype ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;\n\nexport const resolveDeleteMultiple: ResolveDelete =\n ({ model }) =>\n async (_, args: any, context) => {\n try {\n const response = await context.cms.deleteMultipleEntries(model, {\n entries: args?.entries || []\n });\n\n return new ListResponse(response);\n } catch (e) {\n return new ErrorResponse(e);\n }\n };\n"],"mappings":";;;;;;AAAA;AASO,MAAMA,qBAAoC,GAC7C,CAAC;EAAEC;AAAM,CAAC,KACV,OAAOC,CAAC,EAAEC,IAAS,EAAEC,OAAO,KAAK;EAC7B,IAAI;IACA,MAAMC,QAAQ,GAAG,MAAMD,OAAO,CAACE,GAAG,CAACC,qBAAqB,CAACN,KAAK,EAAE;MAC5DO,OAAO,EAAE,CAAAL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,OAAO,KAAI;IAC9B,CAAC,CAAC;IAEF,OAAO,IAAIC,uBAAY,CAACJ,QAAQ,CAAC;EACrC,CAAC,CAAC,OAAOK,CAAC,EAAE;IACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;EAC/B;AACJ,CAAC;AAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CmsEntryListParams, CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
|
|
2
|
+
declare type ResolveGetUniqueFieldValuesList = ResolverFactory<any, CmsEntryListParams>;
|
|
3
|
+
export declare const resolveGetUniqueFieldValues: ResolveGetUniqueFieldValuesList;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveGetUniqueFieldValues = void 0;
|
|
7
|
+
var _responses = require("@webiny/handler-graphql/responses");
|
|
8
|
+
const resolveGetUniqueFieldValues = ({
|
|
9
|
+
model
|
|
10
|
+
}) => async (_, params, context) => {
|
|
11
|
+
try {
|
|
12
|
+
const response = await context.cms.getUniqueFieldValues(model, params);
|
|
13
|
+
return new _responses.Response(response);
|
|
14
|
+
} catch (e) {
|
|
15
|
+
return new _responses.ListErrorResponse(e);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.resolveGetUniqueFieldValues = resolveGetUniqueFieldValues;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["resolveGetUniqueFieldValues","model","_","params","context","response","cms","getUniqueFieldValues","Response","e","ListErrorResponse"],"sources":["resolveGetUniqueFieldValues.ts"],"sourcesContent":["import { ListErrorResponse, Response } from \"@webiny/handler-graphql/responses\";\nimport { CmsEntryListParams, CmsEntryResolverFactory as ResolverFactory } from \"~/types\";\n\ntype ResolveGetUniqueFieldValuesList = ResolverFactory<any, CmsEntryListParams>;\n\nexport const resolveGetUniqueFieldValues: ResolveGetUniqueFieldValuesList =\n ({ model }) =>\n async (_, params: any, context) => {\n try {\n const response = await context.cms.getUniqueFieldValues(model, params);\n\n return new Response(response);\n } catch (e) {\n return new ListErrorResponse(e);\n }\n };\n"],"mappings":";;;;;;AAAA;AAKO,MAAMA,2BAA4D,GACrE,CAAC;EAAEC;AAAM,CAAC,KACV,OAAOC,CAAC,EAAEC,MAAW,EAAEC,OAAO,KAAK;EAC/B,IAAI;IACA,MAAMC,QAAQ,GAAG,MAAMD,OAAO,CAACE,GAAG,CAACC,oBAAoB,CAACN,KAAK,EAAEE,MAAM,CAAC;IAEtE,OAAO,IAAIK,mBAAQ,CAACH,QAAQ,CAAC;EACjC,CAAC,CAAC,OAAOI,CAAC,EAAE;IACR,OAAO,IAAIC,4BAAiB,CAACD,CAAC,CAAC;EACnC;AACJ,CAAC;AAAC"}
|
|
@@ -11,6 +11,7 @@ var _createReadResolvers = require("./createReadResolvers");
|
|
|
11
11
|
var _createPreviewResolvers = require("./createPreviewResolvers");
|
|
12
12
|
var _getSchemaFromFieldPlugins = require("../../utils/getSchemaFromFieldPlugins");
|
|
13
13
|
var _plugins = require("../../plugins");
|
|
14
|
+
var _createFieldTypePluginRecords = require("./createFieldTypePluginRecords");
|
|
14
15
|
const generateSchemaPlugins = async params => {
|
|
15
16
|
const {
|
|
16
17
|
context,
|
|
@@ -33,10 +34,7 @@ const generateSchemaPlugins = async params => {
|
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
// Structure plugins for faster access
|
|
36
|
-
const fieldTypePlugins =
|
|
37
|
-
acc[pl.fieldType] = pl;
|
|
38
|
-
return acc;
|
|
39
|
-
}, {});
|
|
37
|
+
const fieldTypePlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(plugins);
|
|
40
38
|
const sorterPlugins = plugins.byType(_plugins.CmsGraphQLSchemaSorterPlugin.type);
|
|
41
39
|
const schemaPlugins = (0, _getSchemaFromFieldPlugins.createGraphQLSchemaPluginFromFieldPlugins)({
|
|
42
40
|
models,
|
|
@@ -44,13 +42,6 @@ const generateSchemaPlugins = async params => {
|
|
|
44
42
|
type
|
|
45
43
|
});
|
|
46
44
|
models.filter(model => {
|
|
47
|
-
/**
|
|
48
|
-
* TODO @bruno Remove before 5.35.0
|
|
49
|
-
* Temporary check for the development.
|
|
50
|
-
*/
|
|
51
|
-
if (!model.singularApiName || !model.pluralApiName) {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
45
|
return model.fields.length > 0;
|
|
55
46
|
}).forEach(model => {
|
|
56
47
|
switch (type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateSchemaPlugins","params","context","models","plugins","cms","type","fieldTypePlugins","
|
|
1
|
+
{"version":3,"names":["generateSchemaPlugins","params","context","models","plugins","cms","type","fieldTypePlugins","createFieldTypePluginRecords","sorterPlugins","byType","CmsGraphQLSchemaSorterPlugin","schemaPlugins","createGraphQLSchemaPluginFromFieldPlugins","filter","model","fields","length","forEach","plugin","CmsGraphQLSchemaPlugin","typeDefs","createManageSDL","resolvers","createManageResolvers","name","modelId","push","createReadSDL","READ","createReadResolvers","createPreviewResolvers","pl","schema"],"sources":["schemaPlugins.ts"],"sourcesContent":["import { CmsContext, CmsModel } from \"~/types\";\nimport { createManageSDL } from \"./createManageSDL\";\nimport { createReadSDL } from \"./createReadSDL\";\nimport { createManageResolvers } from \"./createManageResolvers\";\nimport { createReadResolvers } from \"./createReadResolvers\";\nimport { createPreviewResolvers } from \"./createPreviewResolvers\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"~/utils/getSchemaFromFieldPlugins\";\nimport { CmsGraphQLSchemaPlugin, CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\nimport { createFieldTypePluginRecords } from \"~/graphql/schema/createFieldTypePluginRecords\";\n\ninterface GenerateSchemaPluginsParams {\n context: CmsContext;\n models: CmsModel[];\n}\n\nexport const generateSchemaPlugins = async (\n params: GenerateSchemaPluginsParams\n): Promise<CmsGraphQLSchemaPlugin[]> => {\n const { context, models } = params;\n const { plugins, cms } = context;\n\n /**\n * If type does not exist, we are not generating schema plugins for models.\n * It should not come to this point, but we check it anyways.\n */\n const { type } = cms;\n if (!type) {\n return [];\n }\n\n // Structure plugins for faster access\n const fieldTypePlugins = createFieldTypePluginRecords(plugins);\n\n const sorterPlugins = plugins.byType<CmsGraphQLSchemaSorterPlugin>(\n CmsGraphQLSchemaSorterPlugin.type\n );\n\n const schemaPlugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n fieldTypePlugins,\n type\n });\n\n models\n .filter(model => {\n return model.fields.length > 0;\n })\n .forEach(model => {\n switch (type) {\n case \"manage\":\n {\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: createManageSDL({\n models,\n model,\n fieldTypePlugins,\n sorterPlugins\n }),\n resolvers: createManageResolvers({\n models,\n model,\n fieldTypePlugins,\n context\n })\n });\n plugin.name = `headless-cms.graphql.schema.manage.${model.modelId}`;\n schemaPlugins.push(plugin);\n }\n\n break;\n case \"preview\":\n case \"read\":\n {\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: createReadSDL({\n models,\n model,\n fieldTypePlugins,\n sorterPlugins\n }),\n resolvers: cms.READ\n ? createReadResolvers({\n models,\n model,\n fieldTypePlugins,\n context\n })\n : createPreviewResolvers({\n models,\n model,\n fieldTypePlugins,\n context\n })\n });\n plugin.name = `headless-cms.graphql.schema.${type}.${model.modelId}`;\n schemaPlugins.push(plugin);\n }\n break;\n default:\n return;\n }\n });\n\n return schemaPlugins.filter(pl => !!pl.schema.typeDefs);\n};\n"],"mappings":";;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOO,MAAMA,qBAAqB,GAAG,MACjCC,MAAmC,IACC;EACpC,MAAM;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAClC,MAAM;IAAEG,OAAO;IAAEC;EAAI,CAAC,GAAGH,OAAO;;EAEhC;AACJ;AACA;AACA;EACI,MAAM;IAAEI;EAAK,CAAC,GAAGD,GAAG;EACpB,IAAI,CAACC,IAAI,EAAE;IACP,OAAO,EAAE;EACb;;EAEA;EACA,MAAMC,gBAAgB,GAAG,IAAAC,0DAA4B,EAACJ,OAAO,CAAC;EAE9D,MAAMK,aAAa,GAAGL,OAAO,CAACM,MAAM,CAChCC,qCAA4B,CAACL,IAAI,CACpC;EAED,MAAMM,aAAa,GAAG,IAAAC,oEAAyC,EAAC;IAC5DV,MAAM;IACNI,gBAAgB;IAChBD;EACJ,CAAC,CAAC;EAEFH,MAAM,CACDW,MAAM,CAACC,KAAK,IAAI;IACb,OAAOA,KAAK,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC;EAClC,CAAC,CAAC,CACDC,OAAO,CAACH,KAAK,IAAI;IACd,QAAQT,IAAI;MACR,KAAK,QAAQ;QACT;UACI,MAAMa,MAAM,GAAG,IAAIC,+BAAsB,CAAC;YACtCC,QAAQ,EAAE,IAAAC,gCAAe,EAAC;cACtBnB,MAAM;cACNY,KAAK;cACLR,gBAAgB;cAChBE;YACJ,CAAC,CAAC;YACFc,SAAS,EAAE,IAAAC,4CAAqB,EAAC;cAC7BrB,MAAM;cACNY,KAAK;cACLR,gBAAgB;cAChBL;YACJ,CAAC;UACL,CAAC,CAAC;UACFiB,MAAM,CAACM,IAAI,GAAI,sCAAqCV,KAAK,CAACW,OAAQ,EAAC;UACnEd,aAAa,CAACe,IAAI,CAACR,MAAM,CAAC;QAC9B;QAEA;MACJ,KAAK,SAAS;MACd,KAAK,MAAM;QACP;UACI,MAAMA,MAAM,GAAG,IAAIC,+BAAsB,CAAC;YACtCC,QAAQ,EAAE,IAAAO,4BAAa,EAAC;cACpBzB,MAAM;cACNY,KAAK;cACLR,gBAAgB;cAChBE;YACJ,CAAC,CAAC;YACFc,SAAS,EAAElB,GAAG,CAACwB,IAAI,GACb,IAAAC,wCAAmB,EAAC;cAChB3B,MAAM;cACNY,KAAK;cACLR,gBAAgB;cAChBL;YACJ,CAAC,CAAC,GACF,IAAA6B,8CAAsB,EAAC;cACnB5B,MAAM;cACNY,KAAK;cACLR,gBAAgB;cAChBL;YACJ,CAAC;UACX,CAAC,CAAC;UACFiB,MAAM,CAACM,IAAI,GAAI,+BAA8BnB,IAAK,IAAGS,KAAK,CAACW,OAAQ,EAAC;UACpEd,aAAa,CAACe,IAAI,CAACR,MAAM,CAAC;QAC9B;QACA;MACJ;QACI;IAAO;EAEnB,CAAC,CAAC;EAEN,OAAOP,aAAa,CAACE,MAAM,CAACkB,EAAE,IAAI,CAAC,CAACA,EAAE,CAACC,MAAM,CAACZ,QAAQ,CAAC;AAC3D,CAAC;AAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CmsModelDynamicZoneField, CmsModelFieldToGraphQLPlugin } from "../../types";
|
|
2
2
|
export declare const createDynamicZoneField: () => CmsModelFieldToGraphQLPlugin<CmsModelDynamicZoneField>;
|
|
@@ -10,7 +10,7 @@ var _createTypeName = require("../../utils/createTypeName");
|
|
|
10
10
|
var _createTypeFromFields = require("../../utils/createTypeFromFields");
|
|
11
11
|
var _helpers = require("../helpers");
|
|
12
12
|
const createUnionTypeName = (model, field) => {
|
|
13
|
-
return `${model.singularApiName}_${(0, _createTypeName.
|
|
13
|
+
return `${model.singularApiName}_${(0, _createTypeName.createTypeName)(field.fieldId)}`;
|
|
14
14
|
};
|
|
15
15
|
const getFieldTemplates = field => {
|
|
16
16
|
var _field$settings;
|
|
@@ -58,20 +58,47 @@ const remapTemplateValue = (value, typeName) => {
|
|
|
58
58
|
__typename: `${typeName}_${templateType}`
|
|
59
59
|
});
|
|
60
60
|
};
|
|
61
|
-
const createResolver =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
61
|
+
const createResolver = endpointType => {
|
|
62
|
+
return ({
|
|
63
|
+
model,
|
|
64
|
+
models,
|
|
65
|
+
field,
|
|
66
|
+
fieldTypePlugins,
|
|
67
|
+
createFieldResolvers
|
|
68
|
+
}) => {
|
|
69
|
+
const resolver = parent => {
|
|
70
|
+
const value = parent[field.fieldId];
|
|
71
|
+
if (!value) {
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
const typeName = `${model.singularApiName}_${(0, _createTypeName.createTypeName)(field.fieldId)}`;
|
|
75
|
+
if (field.multipleValues && Array.isArray(value)) {
|
|
76
|
+
return value.map(v => remapTemplateValue(v, typeName));
|
|
77
|
+
}
|
|
78
|
+
return remapTemplateValue(value, typeName);
|
|
79
|
+
};
|
|
80
|
+
const templates = getFieldTemplates(field);
|
|
81
|
+
const {
|
|
82
|
+
templateTypes
|
|
83
|
+
} = createTypeDefsForTemplates({
|
|
84
|
+
models,
|
|
85
|
+
field,
|
|
86
|
+
type: endpointType,
|
|
87
|
+
typeOfType: "type",
|
|
88
|
+
model,
|
|
89
|
+
fieldTypePlugins,
|
|
90
|
+
templates
|
|
91
|
+
});
|
|
92
|
+
const typeResolvers = templateTypes.reduce((typeResolvers, templateType, index) => {
|
|
93
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, typeResolvers), createFieldResolvers({
|
|
94
|
+
graphQLType: templateType,
|
|
95
|
+
fields: field.settings.templates[index].fields
|
|
96
|
+
}));
|
|
97
|
+
}, {});
|
|
98
|
+
return {
|
|
99
|
+
resolver,
|
|
100
|
+
typeResolvers
|
|
101
|
+
};
|
|
75
102
|
};
|
|
76
103
|
};
|
|
77
104
|
const createDynamicZoneField = () => {
|
|
@@ -129,7 +156,7 @@ const createDynamicZoneField = () => {
|
|
|
129
156
|
typeDefs: typeDefs.join("\n")
|
|
130
157
|
};
|
|
131
158
|
},
|
|
132
|
-
createResolver
|
|
159
|
+
createResolver: createResolver("read")
|
|
133
160
|
},
|
|
134
161
|
manage: {
|
|
135
162
|
createTypeField({
|
|
@@ -209,7 +236,7 @@ const createDynamicZoneField = () => {
|
|
|
209
236
|
typeDefs: typeDefs.join("\n")
|
|
210
237
|
};
|
|
211
238
|
},
|
|
212
|
-
createResolver
|
|
239
|
+
createResolver: createResolver("manage")
|
|
213
240
|
}
|
|
214
241
|
};
|
|
215
242
|
};
|