@webiny/api-headless-cms 0.0.0-unstable.6e5425ee89 → 0.0.0-unstable.7f63ea0744
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.d.ts +5 -2
- package/context.js +53 -4
- package/context.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +4 -2
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +7 -5
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +72 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.js +99 -42
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +2 -3
- package/crud/contentModel/beforeCreate.js +4 -5
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +2 -4
- package/crud/contentModel/beforeUpdate.js +2 -2
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +4 -1
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/validateModel.d.ts +3 -4
- package/crud/contentModel/validateModel.js +6 -3
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.d.ts +3 -4
- package/crud/contentModel/validateModelFields.js +100 -38
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +477 -0
- package/crud/contentModel/validation.js +97 -0
- package/crud/contentModel/validation.js.map +1 -0
- package/crud/contentModel.crud.js +212 -177
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/validation.d.ts +30 -0
- package/crud/contentModelGroup/validation.js +34 -0
- package/crud/contentModelGroup/validation.js.map +1 -0
- package/crud/contentModelGroup.crud.js +47 -52
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/index.d.ts +2 -1
- package/fieldConverters/index.js +2 -1
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.d.ts +8 -3
- package/graphql/buildSchemaPlugins.js +3 -7
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/createExecutableSchema.d.ts +7 -0
- package/graphql/createExecutableSchema.js +29 -0
- package/graphql/createExecutableSchema.js.map +1 -0
- package/graphql/generateSchema.d.ts +8 -0
- package/graphql/generateSchema.js +31 -0
- package/graphql/generateSchema.js.map +1 -0
- package/graphql/graphQLHandlerFactory.js +91 -50
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/index.d.ts +1 -3
- package/graphql/index.js +2 -39
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.d.ts +6 -2
- package/graphql/schema/baseContentSchema.js +6 -4
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +3 -0
- package/graphql/schema/baseSchema.js +53 -0
- package/graphql/schema/baseSchema.js.map +1 -0
- package/graphql/schema/contentEntries.d.ts +6 -2
- package/graphql/schema/contentEntries.js +37 -23
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.d.ts +6 -2
- package/graphql/schema/contentModelGroups.js +7 -3
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.d.ts +6 -2
- package/graphql/schema/contentModels.js +40 -7
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +17 -6
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +2 -0
- package/graphql/schema/createManageSDL.js +10 -6
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +5 -0
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +2 -0
- package/graphql/schema/createReadSDL.js +11 -5
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/schemaPlugins.d.ts +8 -3
- package/graphql/schema/schemaPlugins.js +58 -46
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.js +69 -72
- package/graphql/system.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +208 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +19 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- package/graphqlFields/index.d.ts +1 -1
- package/graphqlFields/index.js +2 -1
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/number.js +4 -0
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +112 -68
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +31 -45
- package/graphqlFields/ref.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.js +3 -7
- package/index.js.map +1 -1
- package/package.json +28 -28
- package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
- package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
- package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.d.ts +11 -11
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +22 -0
- package/plugins/index.js.map +1 -1
- package/storage/object.js +4 -2
- package/storage/object.js.map +1 -1
- package/types.d.ts +241 -57
- package/types.js +62 -7
- package/types.js.map +1 -1
- package/utils/converters/ConverterCollection.js +5 -2
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +15 -0
- package/utils/createTypeFromFields.js +64 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.js +2 -1
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +14 -11
- package/utils/entryStorage.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +10 -0
- package/utils/getBaseFieldType.js.map +1 -0
- package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
- package/utils/getSchemaFromFieldPlugins.js +22 -14
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/renderFields.js +2 -1
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +6 -3
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.js +2 -1
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +4 -2
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +7 -4
- package/utils/renderSortEnum.js +21 -4
- package/utils/renderSortEnum.js.map +1 -1
- package/validators/dynamicZone.d.ts +2 -0
- package/validators/dynamicZone.js +20 -0
- package/validators/dynamicZone.js.map +1 -0
- package/validators/index.js +2 -1
- package/validators/index.js.map +1 -1
- package/crud/contentModel/createFieldModels.d.ts +0 -2
- package/crud/contentModel/createFieldModels.js +0 -20
- package/crud/contentModel/createFieldModels.js.map +0 -1
- package/crud/contentModel/fieldIdValidation.d.ts +0 -1
- package/crud/contentModel/fieldIdValidation.js +0 -20
- package/crud/contentModel/fieldIdValidation.js.map +0 -1
- package/crud/contentModel/idValidation.d.ts +0 -1
- package/crud/contentModel/idValidation.js +0 -17
- package/crud/contentModel/idValidation.js.map +0 -1
- package/crud/contentModel/models.d.ts +0 -4
- package/crud/contentModel/models.js +0 -173
- package/crud/contentModel/models.js.map +0 -1
- package/crud/index.d.ts +0 -6
- package/crud/index.js +0 -69
- package/crud/index.js.map +0 -1
- package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
- package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
- package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
- package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
- package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
- package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
- package/utils/filterModelFields.d.ts +0 -16
- package/utils/filterModelFields.js +0 -71
- package/utils/filterModelFields.js.map +0 -1
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.createModelsSchema = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
7
9
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
8
|
-
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
9
10
|
var _CmsModelPlugin = require("../../plugins/CmsModelPlugin");
|
|
10
|
-
|
|
11
|
+
var _plugins = require("../../plugins");
|
|
12
|
+
var _toSlug = require("../../utils/toSlug");
|
|
13
|
+
const createModelsSchema = ({
|
|
14
|
+
context
|
|
15
|
+
}) => {
|
|
11
16
|
const resolvers = {
|
|
12
17
|
Query: {
|
|
13
18
|
getContentModel: async (_, args, context) => {
|
|
@@ -32,7 +37,27 @@ const createModelsSchema = context => {
|
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
39
|
},
|
|
40
|
+
CmsContentModelField: {
|
|
41
|
+
tags(field) {
|
|
42
|
+
// Make sure `tags` are always returned as an array.
|
|
43
|
+
return Array.isArray(field.tags) ? field.tags : [];
|
|
44
|
+
}
|
|
45
|
+
},
|
|
35
46
|
CmsContentModel: {
|
|
47
|
+
group: async model => {
|
|
48
|
+
context.security.disableAuthorization();
|
|
49
|
+
const groups = await context.cms.listGroups();
|
|
50
|
+
context.security.enableAuthorization();
|
|
51
|
+
const group = groups.find(group => group.id === model.group.id);
|
|
52
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model.group), {}, {
|
|
53
|
+
slug: (0, _toSlug.toSlug)(model.group.name)
|
|
54
|
+
}, group || {});
|
|
55
|
+
},
|
|
56
|
+
tags(model) {
|
|
57
|
+
// Make sure `tags` always contain a `type` tag, to differentiate between models.
|
|
58
|
+
const hasType = (model.tags || []).find(tag => tag.startsWith("type:"));
|
|
59
|
+
return hasType ? model.tags : ["type:model", ...(model.tags || [])];
|
|
60
|
+
},
|
|
36
61
|
plugin: async (model, _, context) => {
|
|
37
62
|
return context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type).some(item => item.contentModel.modelId === model.modelId);
|
|
38
63
|
}
|
|
@@ -82,10 +107,11 @@ const createModelsSchema = context => {
|
|
|
82
107
|
},
|
|
83
108
|
initializeModel: async (_, args, context) => {
|
|
84
109
|
const {
|
|
85
|
-
modelId
|
|
110
|
+
modelId,
|
|
111
|
+
data
|
|
86
112
|
} = args;
|
|
87
113
|
try {
|
|
88
|
-
const result = await context.cms.initializeModel(modelId);
|
|
114
|
+
const result = await context.cms.initializeModel(modelId, data || {});
|
|
89
115
|
return new _handlerGraphql.Response(result);
|
|
90
116
|
} catch (e) {
|
|
91
117
|
return new _handlerGraphql.ErrorResponse(e);
|
|
@@ -123,6 +149,7 @@ const createModelsSchema = context => {
|
|
|
123
149
|
storageId: String
|
|
124
150
|
fieldId: String!
|
|
125
151
|
type: String!
|
|
152
|
+
tags: [String!]
|
|
126
153
|
multipleValues: Boolean
|
|
127
154
|
predefinedValues: CmsPredefinedValuesInput
|
|
128
155
|
renderer: CmsFieldRendererInput
|
|
@@ -139,6 +166,7 @@ const createModelsSchema = context => {
|
|
|
139
166
|
layout: [[ID!]!]
|
|
140
167
|
fields: [CmsContentModelFieldInput!]
|
|
141
168
|
titleFieldId: String
|
|
169
|
+
tags: [String!]
|
|
142
170
|
}
|
|
143
171
|
|
|
144
172
|
input CmsContentModelCreateFromInput {
|
|
@@ -156,6 +184,7 @@ const createModelsSchema = context => {
|
|
|
156
184
|
layout: [[ID!]!]!
|
|
157
185
|
fields: [CmsContentModelFieldInput!]!
|
|
158
186
|
titleFieldId: String
|
|
187
|
+
tags: [String!]
|
|
159
188
|
}
|
|
160
189
|
|
|
161
190
|
type InitializeModelResponse {
|
|
@@ -178,11 +207,12 @@ const createModelsSchema = context => {
|
|
|
178
207
|
|
|
179
208
|
deleteContentModel(modelId: ID!): CmsDeleteResponse
|
|
180
209
|
|
|
181
|
-
|
|
210
|
+
# users can send anything into the data variable
|
|
211
|
+
initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!
|
|
182
212
|
}
|
|
183
213
|
`;
|
|
184
214
|
}
|
|
185
|
-
|
|
215
|
+
const plugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
186
216
|
typeDefs: /* GraphQL */`
|
|
187
217
|
type CmsFieldValidation {
|
|
188
218
|
name: String!
|
|
@@ -215,6 +245,7 @@ const createModelsSchema = context => {
|
|
|
215
245
|
helpText: String
|
|
216
246
|
placeholderText: String
|
|
217
247
|
type: String!
|
|
248
|
+
tags: [String!]!
|
|
218
249
|
multipleValues: Boolean
|
|
219
250
|
predefinedValues: CmsPredefinedValues
|
|
220
251
|
renderer: CmsFieldRenderer
|
|
@@ -235,7 +266,7 @@ const createModelsSchema = context => {
|
|
|
235
266
|
lockedFields: [JSON]
|
|
236
267
|
layout: [[String!]!]!
|
|
237
268
|
titleFieldId: String
|
|
238
|
-
|
|
269
|
+
tags: [String!]!
|
|
239
270
|
# Returns true if the content model is registered via a plugin.
|
|
240
271
|
plugin: Boolean!
|
|
241
272
|
}
|
|
@@ -261,5 +292,7 @@ const createModelsSchema = context => {
|
|
|
261
292
|
`,
|
|
262
293
|
resolvers
|
|
263
294
|
});
|
|
295
|
+
plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-models`;
|
|
296
|
+
return plugin;
|
|
264
297
|
};
|
|
265
298
|
exports.createModelsSchema = createModelsSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModel","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\nexport const createModelsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModel: {\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId);\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n initializeModel(modelId: ID!): InitializeModelResponse!\n }\n `;\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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ACJ,CAAC;MACD2B,eAAe,EAAE,OAAOpC,CAAC,EAAEC,IAAI,EAAEL,OAAO,KAAK;QACzC,MAAM;UAAES;QAAQ,CAAC,GAAGJ,IAAI;QAExB,IAAI;UACA,MAAMoC,MAAM,GAAG,MAAMzC,OAAO,CAACO,GAAG,CAACiC,eAAe,CAAC/B,OAAO,CAAC;UACzD,OAAO,IAAIG,wBAAQ,CAAC6B,MAAM,CAAC;QAC/B,CAAC,CAAC,OAAO5B,CAAC,EAAE;UACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IAEDgB,YAAY,GAAG,aAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;EACL;EAEA,OAAO,IAAIa,wCAAmB,CAAa;IACvCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SAAS;IACD5B;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
|
|
1
|
+
{"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","group","security","disableAuthorization","groups","listGroups","enableAuthorization","find","id","slug","toSlug","name","hasType","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","CmsGraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { toSlug } from \"~/utils/toSlug\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createModelsSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n group: async (model: CmsModel) => {\n context.security.disableAuthorization();\n const groups = await context.cms.listGroups();\n context.security.enableAuthorization();\n\n const group = groups.find(group => group.id === model.group.id);\n return {\n ...model.group,\n slug: toSlug(model.group.name),\n ...(group || {})\n };\n },\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId, data } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId, data || {});\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n tags: [String!]\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n tags: [String!]\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n tags: [String!]\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n # users can send anything into the data variable\n initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!\n }\n `;\n }\n\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n tags: [String!]!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n tags: [String!]!\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-models`;\n\n return plugin;\n};\n"],"mappings":"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CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IAEDmC,YAAY,GAAG,aAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;EACL;EAEA,MAAMR,MAAM,GAAG,IAAIqB,+BAAsB,CAAC;IACtCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SAAS;IACD/C;EACJ,CAAC,CAAC;EAEFuC,MAAM,CAACJ,IAAI,GAAI,+BAA8BpC,OAAO,CAACO,GAAG,CAACqC,IAAK,iBAAgB;EAE9E,OAAOJ,MAAM;AACjB,CAAC;AAAC"}
|
|
@@ -14,7 +14,7 @@ interface CreateFieldResolversFactoryParams {
|
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* We use a factory to avoid passing the parameters for recursive invocations.
|
|
17
|
-
* This way they will always be in the function scope and we can only pass "fields".
|
|
17
|
+
* This way they will always be in the function scope, and we can only pass "fields".
|
|
18
18
|
*/
|
|
19
19
|
export declare const createFieldResolversFactory: (factoryParams: CreateFieldResolversFactoryParams) => (params: CreateFieldResolvers) => {};
|
|
20
20
|
export {};
|
|
@@ -9,17 +9,19 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
|
9
9
|
var _set = _interopRequireDefault(require("lodash/set"));
|
|
10
10
|
var _entryStorage = require("../../utils/entryStorage");
|
|
11
11
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
12
|
+
var _getBaseFieldType = require("../../utils/getBaseFieldType");
|
|
12
13
|
const getCreateResolver = (plugins, field, endpointType) => {
|
|
13
|
-
|
|
14
|
+
const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
|
|
15
|
+
if (!plugins[baseType]) {
|
|
14
16
|
return null;
|
|
15
|
-
} else if (!plugins[
|
|
17
|
+
} else if (!plugins[baseType][endpointType]) {
|
|
16
18
|
return null;
|
|
17
19
|
}
|
|
18
|
-
return plugins[
|
|
20
|
+
return plugins[baseType][endpointType].createResolver;
|
|
19
21
|
};
|
|
20
22
|
/**
|
|
21
23
|
* We use a factory to avoid passing the parameters for recursive invocations.
|
|
22
|
-
* This way they will always be in the function scope and we can only pass "fields".
|
|
24
|
+
* This way they will always be in the function scope, and we can only pass "fields".
|
|
23
25
|
*/
|
|
24
26
|
const createFieldResolversFactory = factoryParams => {
|
|
25
27
|
const {
|
|
@@ -38,7 +40,7 @@ const createFieldResolversFactory = factoryParams => {
|
|
|
38
40
|
const fieldResolvers = (0, _objectSpread2.default)({}, extraResolvers);
|
|
39
41
|
const typeResolvers = {};
|
|
40
42
|
for (const field of fields) {
|
|
41
|
-
if (!fieldTypePlugins[field
|
|
43
|
+
if (!fieldTypePlugins[(0, _getBaseFieldType.getBaseFieldType)(field)]) {
|
|
42
44
|
continue;
|
|
43
45
|
}
|
|
44
46
|
/**
|
|
@@ -77,12 +79,21 @@ const createFieldResolversFactory = factoryParams => {
|
|
|
77
79
|
// TODO @ts-refactor figure out types for parameters
|
|
78
80
|
// @ts-ignore
|
|
79
81
|
fieldResolvers[fieldId] = async (parent, args, context, info) => {
|
|
82
|
+
var _parent$values, _parent$values2, _parent$values3;
|
|
83
|
+
/**
|
|
84
|
+
* This is required because due to ref field can be requested without the populated data.
|
|
85
|
+
* At that point there is no .values no fieldId property on the parent
|
|
86
|
+
*/
|
|
87
|
+
const value = (parent === null || parent === void 0 ? void 0 : (_parent$values = parent.values) === null || _parent$values === void 0 ? void 0 : _parent$values[fieldId]) === undefined ? parent === null || parent === void 0 ? void 0 : parent[fieldId] : parent === null || parent === void 0 ? void 0 : (_parent$values2 = parent.values) === null || _parent$values2 === void 0 ? void 0 : _parent$values2[fieldId];
|
|
88
|
+
if (value === undefined) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
80
91
|
// Get transformed value (eg. data decompression)
|
|
81
92
|
const transformedValue = await (0, _entryStorage.entryFieldFromStorageTransform)({
|
|
82
93
|
context,
|
|
83
94
|
model,
|
|
84
95
|
field,
|
|
85
|
-
value: isRoot ? parent.values[fieldId] : parent[fieldId]
|
|
96
|
+
value: isRoot ? (_parent$values3 = parent.values) === null || _parent$values3 === void 0 ? void 0 : _parent$values3[fieldId] : parent[fieldId]
|
|
86
97
|
});
|
|
87
98
|
(0, _set.default)(isRoot ? parent.values : parent, fieldId, transformedValue);
|
|
88
99
|
if (!resolver) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getCreateResolver","plugins","field","endpointType","
|
|
1
|
+
{"version":3,"names":["getCreateResolver","plugins","field","endpointType","baseType","getBaseFieldType","createResolver","createFieldResolversFactory","factoryParams","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","fieldId","WebinyError","resolver","fieldResolver","Object","assign","parent","args","context","info","value","values","undefined","transformedValue","entryFieldFromStorageTransform","set"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport {\n CmsModelField,\n CmsContext,\n CmsModelFieldToGraphQLCreateResolver,\n ApiEndpoint,\n CmsModel,\n CmsFieldTypePlugins\n} from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst getCreateResolver = (\n plugins: CmsFieldTypePlugins,\n field: CmsModelField,\n endpointType: ApiEndpoint\n): CmsModelFieldToGraphQLCreateResolver | null => {\n const baseType = getBaseFieldType(field);\n if (!plugins[baseType]) {\n return null;\n } else if (!plugins[baseType][endpointType]) {\n return null;\n }\n return plugins[baseType][endpointType].createResolver;\n};\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope, and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers = { ...extraResolvers };\n const typeResolvers = {};\n\n for (const field of fields) {\n if (!fieldTypePlugins[getBaseFieldType(field)]) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({ graphQLType, models, model, field, createFieldResolvers })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n // TODO @ts-refactor figure out types for parameters\n // @ts-ignore\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const value =\n parent?.values?.[fieldId] === undefined\n ? parent?.[fieldId]\n : parent?.values?.[fieldId];\n if (value === undefined) {\n return undefined;\n }\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: isRoot ? parent.values?.[fieldId] : parent[fieldId]\n });\n\n set(isRoot ? parent.values : parent, fieldId, transformedValue);\n\n if (!resolver) {\n return isRoot ? parent.values[fieldId] : parent[fieldId];\n }\n\n return await resolver(isRoot ? parent.values : parent, args, context, info);\n };\n }\n\n return { [graphQLType]: fieldResolvers, ...typeResolvers };\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { CmsFieldTypePlugins, CmsModel } from "../../types";
|
|
2
|
+
import { CmsGraphQLSchemaSorterPlugin } from "../../plugins";
|
|
2
3
|
interface CreateManageSDLParams {
|
|
3
4
|
model: CmsModel;
|
|
4
5
|
fieldTypePlugins: CmsFieldTypePlugins;
|
|
6
|
+
sorterPlugins: CmsGraphQLSchemaSorterPlugin[];
|
|
5
7
|
}
|
|
6
8
|
interface CreateManageSDL {
|
|
7
9
|
(params: CreateManageSDLParams): string;
|
|
@@ -13,7 +13,8 @@ var _renderFields = require("../../utils/renderFields");
|
|
|
13
13
|
var _pluralizedTypeName = require("../../utils/pluralizedTypeName");
|
|
14
14
|
const createManageSDL = ({
|
|
15
15
|
model,
|
|
16
|
-
fieldTypePlugins
|
|
16
|
+
fieldTypePlugins,
|
|
17
|
+
sorterPlugins
|
|
17
18
|
}) => {
|
|
18
19
|
const typeName = (0, _createTypeName.createTypeName)(model.modelId);
|
|
19
20
|
const mTypeName = (0, _createTypeName.createManageTypeName)(typeName);
|
|
@@ -24,7 +25,8 @@ const createManageSDL = ({
|
|
|
24
25
|
});
|
|
25
26
|
const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
|
|
26
27
|
model,
|
|
27
|
-
fieldTypePlugins
|
|
28
|
+
fieldTypePlugins,
|
|
29
|
+
sorterPlugins
|
|
28
30
|
});
|
|
29
31
|
const getFilterFieldsRender = (0, _renderGetFilterFields.renderGetFilterFields)({
|
|
30
32
|
model,
|
|
@@ -44,8 +46,6 @@ const createManageSDL = ({
|
|
|
44
46
|
}
|
|
45
47
|
return (/* GraphQL */`
|
|
46
48
|
"""${model.description || model.modelId}"""
|
|
47
|
-
${fields.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
48
|
-
|
|
49
49
|
type ${mTypeName} {
|
|
50
50
|
id: ID!
|
|
51
51
|
entryId: String!
|
|
@@ -74,11 +74,13 @@ const createManageSDL = ({
|
|
|
74
74
|
"""
|
|
75
75
|
data: JSON
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
|
|
78
|
+
${fields.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
78
79
|
|
|
79
80
|
${inputFields.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
80
81
|
|
|
81
82
|
${inputFields && `input ${mTypeName}Input {
|
|
83
|
+
id: ID
|
|
82
84
|
${inputFields.map(f => f.fields).join("\n")}
|
|
83
85
|
}`}
|
|
84
86
|
|
|
@@ -88,7 +90,9 @@ const createManageSDL = ({
|
|
|
88
90
|
|
|
89
91
|
|
|
90
92
|
${listFilterFieldsRender && `input ${mTypeName}ListWhereInput {
|
|
91
|
-
|
|
93
|
+
${listFilterFieldsRender}
|
|
94
|
+
AND: [${mTypeName}ListWhereInput!]
|
|
95
|
+
OR: [${mTypeName}ListWhereInput!]
|
|
92
96
|
}`}
|
|
93
97
|
|
|
94
98
|
type ${mTypeName}Response {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createManageSDL","model","fieldTypePlugins","typeName","createTypeName","modelId","mTypeName","createManageTypeName","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","inputFields","renderInputFields","fields","renderFields","length","description","map","f","typeDefs","filter","Boolean","
|
|
1
|
+
{"version":3,"names":["createManageSDL","model","fieldTypePlugins","sorterPlugins","typeName","createTypeName","modelId","mTypeName","createManageTypeName","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","inputFields","renderInputFields","fields","renderFields","length","description","map","f","join","typeDefs","filter","Boolean","pluralizedTypeName"],"sources":["createManageSDL.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { createManageTypeName, createTypeName } from \"~/utils/createTypeName\";\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 { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\n\ninterface CreateManageSDLParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\ninterface CreateManageSDL {\n (params: CreateManageSDLParams): string;\n}\n\nexport const createManageSDL: CreateManageSDL = ({\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const typeName = createTypeName(model.modelId);\n const mTypeName = createManageTypeName(typeName);\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({ model, fieldTypePlugins, sorterPlugins });\n const getFilterFieldsRender = renderGetFilterFields({ model, fieldTypePlugins });\n const inputFields = renderInputFields({ model, fieldTypePlugins });\n const fields = renderFields({ model, type: \"manage\", fieldTypePlugins });\n\n if (inputFields.length === 0) {\n return \"\";\n }\n\n return /* GraphQL */ `\n \"\"\"${model.description || model.modelId}\"\"\"\n type ${mTypeName} {\n id: ID!\n entryId: String!\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsCreatedBy!\n ownedBy: CmsOwnedBy!\n meta: ${mTypeName}Meta\n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${mTypeName}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: [${mTypeName}]\n title: String\n \"\"\"\n Custom meta data stored in the root of the entry object.\n \"\"\"\n data: JSON\n }\n\n ${fields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n \n ${inputFields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n\n ${\n inputFields &&\n `input ${mTypeName}Input {\n id: ID\n ${inputFields.map(f => f.fields).join(\"\\n\")}\n }`\n }\n\n ${\n getFilterFieldsRender &&\n `input ${mTypeName}GetWhereInput {\n ${getFilterFieldsRender}\n }`\n }\n\n\n ${\n listFilterFieldsRender &&\n `input ${mTypeName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${mTypeName}ListWhereInput!]\n OR: [${mTypeName}ListWhereInput!]\n }`\n }\n\n type ${mTypeName}Response {\n data: ${mTypeName}\n error: CmsError\n }\n \n type ${mTypeName}ArrayResponse {\n data: [${mTypeName}]\n error: CmsError\n }\n\n type ${mTypeName}ListResponse {\n data: [${mTypeName}]\n meta: CmsListMeta\n error: CmsError\n }\n\n ${\n sortEnumRender &&\n `enum ${mTypeName}ListSorter {\n ${sortEnumRender}\n }`\n }\n\n extend type Query {\n get${typeName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${mTypeName}Response\n \n get${typeName}Revisions(id: ID!): ${mTypeName}ArrayResponse\n \n get${pluralizedTypeName(typeName)}ByIds(revisions: [ID!]!): ${mTypeName}ArrayResponse\n\n list${pluralizedTypeName(typeName)}(\n where: ${mTypeName}ListWhereInput\n sort: [${mTypeName}ListSorter]\n limit: Int\n after: String\n ): ${mTypeName}ListResponse\n }\n\n extend type Mutation{\n create${typeName}(data: ${mTypeName}Input!): ${mTypeName}Response\n\n create${typeName}From(revision: ID!, data: ${mTypeName}Input): ${mTypeName}Response\n\n update${typeName}(revision: ID!, data: ${mTypeName}Input!): ${mTypeName}Response\n\n delete${typeName}(revision: ID!): CmsDeleteResponse\n\n publish${typeName}(revision: ID!): ${mTypeName}Response\n \n republish${typeName}(revision: ID!): ${mTypeName}Response\n\n unpublish${typeName}(revision: ID!): ${mTypeName}Response\n }\n `;\n};\n"],"mappings":"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"}
|
|
@@ -42,6 +42,11 @@ const createReadResolvers = ({
|
|
|
42
42
|
[`list${(0, _pluralizedTypeName.pluralizedTypeName)(typeName)}`]: (0, _resolveList.resolveList)({
|
|
43
43
|
model
|
|
44
44
|
})
|
|
45
|
+
},
|
|
46
|
+
[rTypeName]: {
|
|
47
|
+
modelId: () => {
|
|
48
|
+
return model.modelId;
|
|
49
|
+
}
|
|
45
50
|
}
|
|
46
51
|
}, fieldResolvers);
|
|
47
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createReadResolvers","models","model","fieldTypePlugins","fields","length","Query","typeName","createTypeName","modelId","rTypeName","createReadTypeName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","isRoot","resolveGet","pluralizedTypeName","resolveList"],"sources":["createReadResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext } from \"~/types\";\nimport { resolveGet } from \"./resolvers/read/resolveGet\";\nimport { resolveList } from \"./resolvers/read/resolveList\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\n\ninterface CreateReadResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\nexport interface CreateReadResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateReadResolversParams): any;\n}\n\nexport const createReadResolvers: CreateReadResolvers = ({ models, model, fieldTypePlugins }) => {\n if (model.fields.length === 0) {\n return {\n Query: {}\n };\n }\n const typeName = createTypeName(model.modelId);\n const rTypeName = createReadTypeName(typeName);\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"read\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: rTypeName,\n fields: model.fields,\n isRoot: true\n });\n\n return {\n Query: {\n [`get${typeName}`]: resolveGet({ model }),\n [`list${pluralizedTypeName(typeName)}`]: resolveList({ model })\n },\n ...fieldResolvers\n };\n};\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA;AACA;AAaO,MAAMA,mBAAwC,GAAG,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAAiB,CAAC,KAAK;EAC7F,IAAID,KAAK,CAACE,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO;MACHC,KAAK,EAAE,CAAC;IACZ,CAAC;EACL;EACA,MAAMC,QAAQ,GAAG,IAAAC,8BAAc,EAACN,KAAK,CAACO,OAAO,CAAC;EAC9C,MAAMC,SAAS,GAAG,IAAAC,kCAAkB,EAACJ,QAAQ,CAAC;EAE9C,MAAMK,oBAAoB,GAAG,IAAAC,iDAA2B,EAAC;IACrDC,YAAY,EAAE,MAAM;IACpBb,MAAM;IACNC,KAAK;IACLC;EACJ,CAAC,CAAC;EAEF,MAAMY,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEN,SAAS;IACtBN,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBa,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF;IACIX,KAAK,EAAE;MACH,CAAE,MAAKC,QAAS,EAAC,GAAG,IAAAW,sBAAU,EAAC;QAAEhB;MAAM,CAAC,CAAC;MACzC,CAAE,OAAM,IAAAiB,sCAAkB,EAACZ,QAAQ,CAAE,EAAC,GAAG,IAAAa,wBAAW,EAAC;QAAElB;MAAM,CAAC;IAClE;EAAC,
|
|
1
|
+
{"version":3,"names":["createReadResolvers","models","model","fieldTypePlugins","fields","length","Query","typeName","createTypeName","modelId","rTypeName","createReadTypeName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","isRoot","resolveGet","pluralizedTypeName","resolveList"],"sources":["createReadResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext } from \"~/types\";\nimport { resolveGet } from \"./resolvers/read/resolveGet\";\nimport { resolveList } from \"./resolvers/read/resolveList\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\n\ninterface CreateReadResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\nexport interface CreateReadResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateReadResolversParams): any;\n}\n\nexport const createReadResolvers: CreateReadResolvers = ({ models, model, fieldTypePlugins }) => {\n if (model.fields.length === 0) {\n return {\n Query: {}\n };\n }\n const typeName = createTypeName(model.modelId);\n const rTypeName = createReadTypeName(typeName);\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"read\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: rTypeName,\n fields: model.fields,\n isRoot: true\n });\n\n return {\n Query: {\n [`get${typeName}`]: resolveGet({ model }),\n [`list${pluralizedTypeName(typeName)}`]: resolveList({ model })\n },\n [rTypeName]: {\n modelId: () => {\n return model.modelId;\n }\n },\n ...fieldResolvers\n };\n};\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA;AACA;AAaO,MAAMA,mBAAwC,GAAG,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAAiB,CAAC,KAAK;EAC7F,IAAID,KAAK,CAACE,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO;MACHC,KAAK,EAAE,CAAC;IACZ,CAAC;EACL;EACA,MAAMC,QAAQ,GAAG,IAAAC,8BAAc,EAACN,KAAK,CAACO,OAAO,CAAC;EAC9C,MAAMC,SAAS,GAAG,IAAAC,kCAAkB,EAACJ,QAAQ,CAAC;EAE9C,MAAMK,oBAAoB,GAAG,IAAAC,iDAA2B,EAAC;IACrDC,YAAY,EAAE,MAAM;IACpBb,MAAM;IACNC,KAAK;IACLC;EACJ,CAAC,CAAC;EAEF,MAAMY,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEN,SAAS;IACtBN,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBa,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF;IACIX,KAAK,EAAE;MACH,CAAE,MAAKC,QAAS,EAAC,GAAG,IAAAW,sBAAU,EAAC;QAAEhB;MAAM,CAAC,CAAC;MACzC,CAAE,OAAM,IAAAiB,sCAAkB,EAACZ,QAAQ,CAAE,EAAC,GAAG,IAAAa,wBAAW,EAAC;QAAElB;MAAM,CAAC;IAClE,CAAC;IACD,CAACQ,SAAS,GAAG;MACTD,OAAO,EAAE,MAAM;QACX,OAAOP,KAAK,CAACO,OAAO;MACxB;IACJ;EAAC,GACEM,cAAc;AAEzB,CAAC;AAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { CmsModel, CmsFieldTypePlugins } from "../../types";
|
|
2
|
+
import { CmsGraphQLSchemaSorterPlugin } from "../../plugins";
|
|
2
3
|
interface CreateReadSDLParams {
|
|
3
4
|
model: CmsModel;
|
|
4
5
|
fieldTypePlugins: CmsFieldTypePlugins;
|
|
6
|
+
sorterPlugins: CmsGraphQLSchemaSorterPlugin[];
|
|
5
7
|
}
|
|
6
8
|
interface CreateReadSDL {
|
|
7
9
|
(params: CreateReadSDLParams): string;
|
|
@@ -12,7 +12,8 @@ var _renderGetFilterFields = require("../../utils/renderGetFilterFields");
|
|
|
12
12
|
var _pluralizedTypeName = require("../../utils/pluralizedTypeName");
|
|
13
13
|
const createReadSDL = ({
|
|
14
14
|
model,
|
|
15
|
-
fieldTypePlugins
|
|
15
|
+
fieldTypePlugins,
|
|
16
|
+
sorterPlugins
|
|
16
17
|
}) => {
|
|
17
18
|
const typeName = (0, _createTypeName.createTypeName)(model.modelId);
|
|
18
19
|
const rTypeName = (0, _createTypeName.createReadTypeName)(typeName);
|
|
@@ -24,7 +25,8 @@ const createReadSDL = ({
|
|
|
24
25
|
});
|
|
25
26
|
const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
|
|
26
27
|
model,
|
|
27
|
-
fieldTypePlugins
|
|
28
|
+
fieldTypePlugins,
|
|
29
|
+
sorterPlugins
|
|
28
30
|
});
|
|
29
31
|
const getFilterFieldsRender = (0, _renderGetFilterFields.renderGetFilterFields)({
|
|
30
32
|
model,
|
|
@@ -38,13 +40,13 @@ const createReadSDL = ({
|
|
|
38
40
|
if (fieldsRender.length === 0) {
|
|
39
41
|
return "";
|
|
40
42
|
}
|
|
43
|
+
const hasModelIdField = model.fields.some(f => f.fieldId === "modelId");
|
|
41
44
|
return `
|
|
42
45
|
"""${model.description || ""}"""
|
|
43
|
-
${fieldsRender.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
44
|
-
|
|
45
46
|
type ${rTypeName} {
|
|
46
47
|
id: ID!
|
|
47
48
|
entryId: String!
|
|
49
|
+
${hasModelIdField ? "" : "modelId: String!"}
|
|
48
50
|
createdOn: DateTime!
|
|
49
51
|
savedOn: DateTime!
|
|
50
52
|
createdBy: CmsCreatedBy!
|
|
@@ -52,13 +54,17 @@ const createReadSDL = ({
|
|
|
52
54
|
${fieldsRender.map(f => f.fields).join("\n")}
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
${fieldsRender.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
58
|
+
|
|
55
59
|
${getFilterFieldsRender && `input ${rTypeName}GetWhereInput {
|
|
56
60
|
${getFilterFieldsRender}
|
|
57
61
|
}`}
|
|
58
62
|
|
|
59
63
|
|
|
60
64
|
${listFilterFieldsRender && `input ${rTypeName}ListWhereInput {
|
|
61
|
-
|
|
65
|
+
${listFilterFieldsRender}
|
|
66
|
+
AND: [${rTypeName}ListWhereInput!]
|
|
67
|
+
OR: [${rTypeName}ListWhereInput!]
|
|
62
68
|
}`}
|
|
63
69
|
|
|
64
70
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createReadSDL","model","fieldTypePlugins","typeName","createTypeName","modelId","rTypeName","createReadTypeName","type","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","fieldsRender","renderFields","length","
|
|
1
|
+
{"version":3,"names":["createReadSDL","model","fieldTypePlugins","sorterPlugins","typeName","createTypeName","modelId","rTypeName","createReadTypeName","type","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","fieldsRender","renderFields","length","hasModelIdField","fields","some","f","fieldId","description","map","join","typeDefs","filter","Boolean","pluralizedTypeName"],"sources":["createReadSDL.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, ApiEndpoint } from \"~/types\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\n\ninterface CreateReadSDLParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\ninterface CreateReadSDL {\n (params: CreateReadSDLParams): string;\n}\n\nexport const createReadSDL: CreateReadSDL = ({\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const typeName = createTypeName(model.modelId);\n const rTypeName = createReadTypeName(typeName);\n\n const type: ApiEndpoint = \"read\";\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n type,\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fieldTypePlugins,\n sorterPlugins\n });\n const getFilterFieldsRender = renderGetFilterFields({\n model,\n fieldTypePlugins\n });\n const fieldsRender = renderFields({\n model,\n type,\n fieldTypePlugins\n });\n\n if (fieldsRender.length === 0) {\n return \"\";\n }\n\n const hasModelIdField = model.fields.some(f => f.fieldId === \"modelId\");\n\n return `\n \"\"\"${model.description || \"\"}\"\"\"\n type ${rTypeName} {\n id: ID!\n entryId: String!\n ${hasModelIdField ? \"\" : \"modelId: String!\"}\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsCreatedBy!\n ownedBy: CmsOwnedBy!\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 ${\n getFilterFieldsRender &&\n `input ${rTypeName}GetWhereInput {\n ${getFilterFieldsRender}\n }`\n }\n \n \n ${\n listFilterFieldsRender &&\n `input ${rTypeName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${rTypeName}ListWhereInput!]\n OR: [${rTypeName}ListWhereInput!]\n }`\n }\n \n \n ${\n sortEnumRender &&\n `enum ${rTypeName}ListSorter {\n ${sortEnumRender}\n }`\n }\n \n type ${rTypeName}Response {\n data: ${rTypeName}\n error: CmsError\n }\n \n type ${rTypeName}ListResponse {\n data: [${rTypeName}]\n meta: CmsListMeta\n error: CmsError\n }\n \n extend type Query {\n get${typeName}(where: ${rTypeName}GetWhereInput!): ${rTypeName}Response\n\n list${pluralizedTypeName(typeName)}(\n where: ${rTypeName}ListWhereInput\n sort: [${rTypeName}ListSorter]\n limit: Int\n after: String\n ): ${rTypeName}ListResponse\n }\n `;\n};\n"],"mappings":";;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAYO,MAAMA,aAA4B,GAAG,CAAC;EACzCC,KAAK;EACLC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,MAAMC,QAAQ,GAAG,IAAAC,8BAAc,EAACJ,KAAK,CAACK,OAAO,CAAC;EAC9C,MAAMC,SAAS,GAAG,IAAAC,kCAAkB,EAACJ,QAAQ,CAAC;EAE9C,MAAMK,IAAiB,GAAG,MAAM;EAEhC,MAAMC,sBAAsB,GAAG,IAAAC,8CAAsB,EAAC;IAClDV,KAAK;IACLQ,IAAI;IACJP;EACJ,CAAC,CAAC;EAEF,MAAMU,cAAc,GAAG,IAAAC,8BAAc,EAAC;IAClCZ,KAAK;IACLC,gBAAgB;IAChBC;EACJ,CAAC,CAAC;EACF,MAAMW,qBAAqB,GAAG,IAAAC,4CAAqB,EAAC;IAChDd,KAAK;IACLC;EACJ,CAAC,CAAC;EACF,MAAMc,YAAY,GAAG,IAAAC,0BAAY,EAAC;IAC9BhB,KAAK;IACLQ,IAAI;IACJP;EACJ,CAAC,CAAC;EAEF,IAAIc,YAAY,CAACE,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO,EAAE;EACb;EAEA,MAAMC,eAAe,GAAGlB,KAAK,CAACmB,MAAM,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,OAAO,KAAK,SAAS,CAAC;EAEvE,OAAQ;AACZ,aAAatB,KAAK,CAACuB,WAAW,IAAI,EAAG;AACrC,eAAejB,SAAU;AACzB;AACA;AACA,cAAcY,eAAe,GAAG,EAAE,GAAG,kBAAmB;AACxD;AACA;AACA;AACA;AACA,cAAcH,YAAY,CAACS,GAAG,CAACH,CAAC,IAAIA,CAAC,CAACF,MAAM,CAAC,CAACM,IAAI,CAAC,IAAI,CAAE;AACzD;AACA;AACA,UAAUV,YAAY,CACTS,GAAG,CAACH,CAAC,IAAIA,CAAC,CAACK,QAAQ,CAAC,CACpBC,MAAM,CAACC,OAAO,CAAC,CACfH,IAAI,CAAC,IAAI,CAAE;AACxB;AACA,UACYZ,qBAAqB,IACpB,SAAQP,SAAU;AAC/B,cAAcO,qBAAsB;AACpC,UACS;AACT;AACA;AACA,UACYJ,sBAAsB,IACrB,SAAQH,SAAU;AAC/B,kBAAkBG,sBAAuB;AACzC,wBAAwBH,SAAU;AAClC,uBAAuBA,SAAU;AACjC,UACS;AACT;AACA;AACA,UACYK,cAAc,IACb,QAAOL,SAAU;AAC9B,cAAcK,cAAe;AAC7B,UACS;AACT;AACA,eAAeL,SAAU;AACzB,oBAAoBA,SAAU;AAC9B;AACA;AACA;AACA,eAAeA,SAAU;AACzB,qBAAqBA,SAAU;AAC/B;AACA;AACA;AACA;AACA;AACA,iBAAiBH,QAAS,WAAUG,SAAU,oBAAmBA,SAAU;AAC3E;AACA,kBAAkB,IAAAuB,sCAAkB,EAAC1B,QAAQ,CAAE;AAC/C,yBAAyBG,SAAU;AACnC,yBAAyBA,SAAU;AACnC;AACA;AACA,iBAAiBA,SAAU;AAC3B;AACA,KAAK;AACL,CAAC;AAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { CmsContext, CmsModel } from "../../types";
|
|
2
|
+
import { CmsGraphQLSchemaPlugin } from "../../plugins";
|
|
3
|
+
interface GenerateSchemaPluginsParams {
|
|
4
|
+
context: CmsContext;
|
|
5
|
+
models: CmsModel[];
|
|
6
|
+
}
|
|
7
|
+
export declare const generateSchemaPlugins: (params: GenerateSchemaPluginsParams) => Promise<CmsGraphQLSchemaPlugin[]>;
|
|
8
|
+
export {};
|