@webiny/api-headless-cms 0.0.0-unstable.3386f66516 → 0.0.0-unstable.496cf268ac
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 +0 -25
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +0 -5
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.js +0 -3
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.js +0 -3
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.js +1 -40
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.d.ts +1 -1
- package/crud/contentEntry/markLockedFields.js +15 -28
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +5 -61
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +1 -12
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.d.ts +2 -1
- package/crud/contentEntry.crud.js +59 -166
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/afterCreate.js +0 -2
- package/crud/contentModel/afterCreate.js.map +1 -1
- package/crud/contentModel/afterCreateFrom.js +0 -2
- package/crud/contentModel/afterCreateFrom.js.map +1 -1
- package/crud/contentModel/afterDelete.js +0 -2
- package/crud/contentModel/afterDelete.js.map +1 -1
- package/crud/contentModel/afterUpdate.js +0 -2
- package/crud/contentModel/afterUpdate.js.map +1 -1
- package/crud/contentModel/beforeCreate.js +7 -32
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.js +0 -10
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.js +4 -5
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
- package/crud/contentModel/compatibility/modelApiName.js +24 -0
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.js +0 -7
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +0 -3
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.d.ts +5 -0
- package/crud/contentModel/defaultFields.js +58 -0
- package/crud/contentModel/defaultFields.js.map +1 -0
- package/crud/contentModel/fields/descriptionField.d.ts +2 -0
- package/crud/contentModel/fields/descriptionField.js +42 -0
- package/crud/contentModel/fields/descriptionField.js.map +1 -0
- package/crud/contentModel/fields/imageField.d.ts +2 -0
- package/crud/contentModel/fields/imageField.js +46 -0
- package/crud/contentModel/fields/imageField.js.map +1 -0
- package/crud/contentModel/fields/titleField.d.ts +2 -0
- package/crud/contentModel/fields/titleField.js +58 -0
- package/crud/contentModel/fields/titleField.js.map +1 -0
- package/crud/contentModel/validateLayout.js +0 -8
- package/crud/contentModel/validateLayout.js.map +1 -1
- package/crud/contentModel/validateModel.d.ts +1 -0
- package/crud/contentModel/validateModel.js +0 -8
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.d.ts +2 -1
- package/crud/contentModel/validateModelFields.js +35 -128
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +85 -43
- package/crud/contentModel/validation.js +57 -21
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.js +46 -110
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.js +0 -12
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.js +0 -8
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.js +0 -5
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/validation.js +0 -9
- package/crud/contentModelGroup/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.js +5 -47
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/settings.crud.js +0 -12
- package/crud/settings.crud.js.map +1 -1
- package/crud/system.crud.js +1 -96
- package/crud/system.crud.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.js +0 -5
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.js +4 -9
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/createExecutableSchema.js +2 -6
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/generateSchema.js +0 -7
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/graphQLHandlerFactory.js +16 -39
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/index.js +0 -5
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.js +5 -17
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.js +1 -8
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.js +107 -102
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +3 -20
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +22 -25
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.js +5 -28
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.d.ts +1 -1
- package/graphql/schema/createManageResolvers.js +33 -43
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +1 -0
- package/graphql/schema/createManageSDL.js +57 -63
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +3 -17
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +4 -18
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +1 -0
- package/graphql/schema/createReadSDL.js +24 -32
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
- package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.js +0 -3
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +0 -3
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +0 -8
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +0 -3
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/schemaPlugins.js +16 -26
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.js +1 -30
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.js +0 -12
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.js +0 -17
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +15 -33
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
- package/graphqlFields/dynamicZone/index.js +0 -2
- package/graphqlFields/dynamicZone/index.js.map +1 -1
- package/graphqlFields/file.js +0 -8
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.js +0 -10
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.js +0 -12
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/longText.js +0 -10
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.js +0 -12
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +7 -37
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +59 -65
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText.js +0 -9
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/text.js +0 -11
- package/graphqlFields/text.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -21
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +0 -16
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/modelManager/index.js +0 -4
- package/modelManager/index.js.map +1 -1
- package/package.json +24 -25
- package/parameters/context.js +0 -4
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +0 -11
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +0 -8
- package/parameters/index.js.map +1 -1
- package/parameters/manual.js +1 -8
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +0 -11
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin.js +0 -5
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +0 -10
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
- package/plugins/CmsGroupPlugin.js +0 -8
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +0 -5
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +11 -1
- package/plugins/CmsModelPlugin.js +15 -40
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +0 -7
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.js +0 -9
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.js +0 -14
- package/plugins/index.js.map +1 -1
- package/storage/default.js +0 -3
- package/storage/default.js.map +1 -1
- package/storage/object.js +0 -19
- package/storage/object.js.map +1 -1
- package/types.d.ts +77 -22
- package/types.js +1 -80
- package/types.js.map +1 -1
- package/utils/access.js +11 -25
- package/utils/access.js.map +1 -1
- package/utils/converters/Converter.js +0 -13
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +9 -33
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +2 -27
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +1 -0
- package/utils/createTypeFromFields.js +11 -19
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.js +0 -9
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +10 -26
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +0 -5
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.js +0 -2
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.d.ts +2 -0
- package/utils/getEntryDescription.js +17 -0
- package/utils/getEntryDescription.js.map +1 -0
- package/utils/getEntryImage.d.ts +2 -0
- package/utils/getEntryImage.js +17 -0
- package/utils/getEntryImage.js.map +1 -0
- package/utils/getEntryTitle.js +0 -9
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.js +2 -11
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/ownership.d.ts +3 -3
- package/utils/ownership.js +0 -8
- package/utils/ownership.js.map +1 -1
- package/utils/permissions.js +8 -23
- package/utils/permissions.js.map +1 -1
- package/utils/removeNullValues.d.ts +1 -0
- package/utils/removeNullValues.js +17 -0
- package/utils/removeNullValues.js.map +1 -0
- package/utils/removeUndefinedValues.d.ts +1 -0
- package/utils/removeUndefinedValues.js +17 -0
- package/utils/removeUndefinedValues.js.map +1 -0
- package/utils/renderFields.d.ts +2 -1
- package/utils/renderFields.js +8 -10
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +0 -13
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +2 -1
- package/utils/renderInputFields.js +4 -9
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +1 -10
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.js +0 -9
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +0 -4
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.js +0 -7
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +0 -7
- package/validators/dateLte.js.map +1 -1
- package/validators/dynamicZone.js +0 -4
- package/validators/dynamicZone.js.map +1 -1
- package/validators/gte.js +0 -8
- package/validators/gte.js.map +1 -1
- package/validators/in.js +0 -8
- package/validators/in.js.map +1 -1
- package/validators/index.js +0 -16
- package/validators/index.js.map +1 -1
- package/validators/lte.js +0 -8
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +0 -8
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +0 -8
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.js +0 -9
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.js +0 -2
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.js +0 -8
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.js +0 -2
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js +0 -2
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.js +0 -2
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.js +0 -2
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.js +0 -2
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.js +0 -5
- package/validators/required.js.map +1 -1
- package/validators/timeGte.js +0 -8
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +0 -8
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.js +0 -7
- package/validators/unique.js.map +1 -1
package/graphqlFields/number.js
CHANGED
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createNumberField = void 0;
|
|
7
|
-
|
|
8
7
|
var _helpers = require("./helpers");
|
|
9
|
-
|
|
10
8
|
const createListFilters = ({
|
|
11
9
|
field
|
|
12
10
|
}) => {
|
|
@@ -25,7 +23,6 @@ const createListFilters = ({
|
|
|
25
23
|
${field.fieldId}_not_between: [Number!]
|
|
26
24
|
`;
|
|
27
25
|
};
|
|
28
|
-
|
|
29
26
|
const createNumberField = () => {
|
|
30
27
|
return {
|
|
31
28
|
name: "cms-model-field-to-graphql-number",
|
|
@@ -39,41 +36,32 @@ const createNumberField = () => {
|
|
|
39
36
|
}) {
|
|
40
37
|
return `${field.fieldId}: Number`;
|
|
41
38
|
},
|
|
42
|
-
|
|
43
39
|
createListFilters,
|
|
44
|
-
|
|
45
40
|
createTypeField({
|
|
46
41
|
field
|
|
47
42
|
}) {
|
|
48
43
|
if (field.multipleValues) {
|
|
49
44
|
return `${field.fieldId}: [Number]`;
|
|
50
45
|
}
|
|
51
|
-
|
|
52
46
|
return `${field.fieldId}: Number`;
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
},
|
|
56
49
|
manage: {
|
|
57
50
|
createListFilters,
|
|
58
|
-
|
|
59
51
|
createTypeField({
|
|
60
52
|
field
|
|
61
53
|
}) {
|
|
62
54
|
if (field.multipleValues) {
|
|
63
55
|
return field.fieldId + ": [Number]";
|
|
64
56
|
}
|
|
65
|
-
|
|
66
57
|
return field.fieldId + ": Number";
|
|
67
58
|
},
|
|
68
|
-
|
|
69
59
|
createInputField({
|
|
70
60
|
field
|
|
71
61
|
}) {
|
|
72
62
|
return (0, _helpers.createGraphQLInputField)(field, "Number");
|
|
73
63
|
}
|
|
74
|
-
|
|
75
64
|
}
|
|
76
65
|
};
|
|
77
66
|
};
|
|
78
|
-
|
|
79
67
|
exports.createNumberField = createNumberField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createListFilters","field","fieldId","createNumberField","name","type","fieldType","isSortable","isSearchable","read","createGetFilters","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField"],"sources":["number.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: Number\n ${field.fieldId}_not: Number\n ${field.fieldId}_in: [Number]\n ${field.fieldId}_not_in: [Number]\n ${field.fieldId}_lt: Number\n ${field.fieldId}_lte: Number\n ${field.fieldId}_gt: Number\n ${field.fieldId}_gte: Number\n # there must be two numbers sent in the array\n ${field.fieldId}_between: [Number!]\n # there must be two numbers sent in the array\n ${field.fieldId}_not_between: [Number!]\n `;\n};\n\nexport const createNumberField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-number\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"number\",\n isSortable: true,\n isSearchable: true,\n read: {\n createGetFilters({ field }) {\n return `${field.fieldId}: Number`;\n },\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [Number]`;\n }\n\n return `${field.fieldId}: Number`;\n }\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return field.fieldId + \": [Number]\";\n }\n\n return field.fieldId + \": Number\";\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"Number\");\n }\n }\n };\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["createListFilters","field","fieldId","createNumberField","name","type","fieldType","isSortable","isSearchable","read","createGetFilters","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField"],"sources":["number.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: Number\n ${field.fieldId}_not: Number\n ${field.fieldId}_in: [Number]\n ${field.fieldId}_not_in: [Number]\n ${field.fieldId}_lt: Number\n ${field.fieldId}_lte: Number\n ${field.fieldId}_gt: Number\n ${field.fieldId}_gte: Number\n # there must be two numbers sent in the array\n ${field.fieldId}_between: [Number!]\n # there must be two numbers sent in the array\n ${field.fieldId}_not_between: [Number!]\n `;\n};\n\nexport const createNumberField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-number\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"number\",\n isSortable: true,\n isSearchable: true,\n read: {\n createGetFilters({ field }) {\n return `${field.fieldId}: Number`;\n },\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [Number]`;\n }\n\n return `${field.fieldId}: Number`;\n }\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return field.fieldId + \": [Number]\";\n }\n\n return field.fieldId + \": Number\";\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"Number\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,iBAAiB,GAAG,MAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,mCAAmC;IACzCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,IAAI,EAAE;MACFC,gBAAgB,CAAC;QAAET;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QAEA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC;IACJ,CAAC;IACDW,MAAM,EAAE;MACJb,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAOX,KAAK,CAACC,OAAO,GAAG,YAAY;QACvC;QAEA,OAAOD,KAAK,CAACC,OAAO,GAAG,UAAU;MACrC,CAAC;MACDY,gBAAgB,CAAC;QAAEb;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAc,gCAAuB,EAACd,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
|
package/graphqlFields/object.js
CHANGED
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createObjectField = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
|
|
13
|
-
|
|
14
10
|
var _helpers = require("./helpers");
|
|
15
|
-
|
|
16
11
|
var _createTypeFromFields = require("../utils/createTypeFromFields");
|
|
17
|
-
|
|
18
12
|
const createChildTypeDefs = params => {
|
|
19
13
|
var _field$settings, _field$settings2;
|
|
20
|
-
|
|
21
14
|
const {
|
|
22
15
|
field,
|
|
23
16
|
plugins,
|
|
@@ -32,13 +25,10 @@ const createChildTypeDefs = params => {
|
|
|
32
25
|
});
|
|
33
26
|
const filters = fields.map(child => {
|
|
34
27
|
var _child$settings;
|
|
35
|
-
|
|
36
28
|
const createListFilters = plugins[child.type][endpointType].createListFilters;
|
|
37
|
-
|
|
38
29
|
if (!createListFilters) {
|
|
39
30
|
return null;
|
|
40
31
|
}
|
|
41
|
-
|
|
42
32
|
const filters = createListFilters({
|
|
43
33
|
model,
|
|
44
34
|
field: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
@@ -48,35 +38,30 @@ const createChildTypeDefs = params => {
|
|
|
48
38
|
}),
|
|
49
39
|
plugins
|
|
50
40
|
});
|
|
51
|
-
|
|
52
41
|
if (!filters) {
|
|
53
42
|
return null;
|
|
54
43
|
}
|
|
55
|
-
|
|
56
44
|
return filters;
|
|
57
45
|
}).filter(Boolean).join("\n");
|
|
58
46
|
return `input ${typeName}WhereInput {
|
|
59
47
|
${filters || "_empty: String"}
|
|
60
48
|
}`;
|
|
61
49
|
};
|
|
62
|
-
|
|
63
50
|
const createTypeName = params => {
|
|
64
51
|
const {
|
|
65
52
|
model,
|
|
66
53
|
parents = [],
|
|
67
54
|
field
|
|
68
55
|
} = params;
|
|
69
|
-
return [model.
|
|
56
|
+
return [model.singularApiName].concat(parents).concat([field.fieldId]).filter(Boolean).map(id => {
|
|
70
57
|
return (0, _upperFirst.default)(id);
|
|
71
58
|
}).join("_");
|
|
72
59
|
};
|
|
73
|
-
|
|
74
60
|
const createListFilters = ({
|
|
75
61
|
field,
|
|
76
62
|
model
|
|
77
63
|
}) => {
|
|
78
64
|
var _field$settings3;
|
|
79
|
-
|
|
80
65
|
const typeName = createTypeName({
|
|
81
66
|
model,
|
|
82
67
|
field,
|
|
@@ -84,7 +69,6 @@ const createListFilters = ({
|
|
|
84
69
|
});
|
|
85
70
|
return `${field.fieldId}: ${typeName}WhereInput`;
|
|
86
71
|
};
|
|
87
|
-
|
|
88
72
|
const createObjectField = () => {
|
|
89
73
|
return {
|
|
90
74
|
name: "cms-model-field-to-graphql-object",
|
|
@@ -94,7 +78,6 @@ const createObjectField = () => {
|
|
|
94
78
|
isSearchable: false,
|
|
95
79
|
validateChildFields: params => {
|
|
96
80
|
var _field$settings4, _originalField$settin;
|
|
97
|
-
|
|
98
81
|
const {
|
|
99
82
|
field,
|
|
100
83
|
originalField,
|
|
@@ -108,12 +91,13 @@ const createObjectField = () => {
|
|
|
108
91
|
read: {
|
|
109
92
|
createTypeField({
|
|
110
93
|
field,
|
|
94
|
+
models,
|
|
111
95
|
model,
|
|
112
96
|
fieldTypePlugins
|
|
113
97
|
}) {
|
|
114
98
|
var _field$settings5, _field$settings6;
|
|
115
|
-
|
|
116
99
|
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
100
|
+
models,
|
|
117
101
|
typeOfType: "type",
|
|
118
102
|
model,
|
|
119
103
|
type: "read",
|
|
@@ -125,11 +109,9 @@ const createObjectField = () => {
|
|
|
125
109
|
fields: ((_field$settings6 = field.settings) === null || _field$settings6 === void 0 ? void 0 : _field$settings6.fields) || [],
|
|
126
110
|
fieldTypePlugins
|
|
127
111
|
});
|
|
128
|
-
|
|
129
112
|
if (!result) {
|
|
130
113
|
return null;
|
|
131
114
|
}
|
|
132
|
-
|
|
133
115
|
const {
|
|
134
116
|
fieldType,
|
|
135
117
|
typeDefs
|
|
@@ -145,18 +127,15 @@ const createObjectField = () => {
|
|
|
145
127
|
typeDefs: `${typeDefs}${childTypeDefs}`
|
|
146
128
|
};
|
|
147
129
|
},
|
|
148
|
-
|
|
149
130
|
createResolver({
|
|
150
131
|
field,
|
|
151
132
|
createFieldResolvers,
|
|
152
133
|
graphQLType
|
|
153
134
|
}) {
|
|
154
135
|
var _field$settings7;
|
|
155
|
-
|
|
156
136
|
if (!((_field$settings7 = field.settings) !== null && _field$settings7 !== void 0 && _field$settings7.fields) || field.settings.fields.length === 0) {
|
|
157
137
|
return false;
|
|
158
138
|
}
|
|
159
|
-
|
|
160
139
|
const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
|
|
161
140
|
const typeResolvers = createFieldResolvers({
|
|
162
141
|
graphQLType: fieldType,
|
|
@@ -167,19 +146,19 @@ const createObjectField = () => {
|
|
|
167
146
|
typeResolvers: typeResolvers || {}
|
|
168
147
|
};
|
|
169
148
|
},
|
|
170
|
-
|
|
171
149
|
createListFilters
|
|
172
150
|
},
|
|
173
151
|
manage: {
|
|
174
152
|
createTypeField({
|
|
153
|
+
models,
|
|
175
154
|
model,
|
|
176
155
|
field,
|
|
177
156
|
fieldTypePlugins
|
|
178
157
|
}) {
|
|
179
158
|
var _field$settings8, _field$settings9;
|
|
180
|
-
|
|
181
159
|
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
182
160
|
typeOfType: "type",
|
|
161
|
+
models,
|
|
183
162
|
model,
|
|
184
163
|
type: "manage",
|
|
185
164
|
typeNamePrefix: createTypeName({
|
|
@@ -190,11 +169,9 @@ const createObjectField = () => {
|
|
|
190
169
|
fields: ((_field$settings9 = field.settings) === null || _field$settings9 === void 0 ? void 0 : _field$settings9.fields) || [],
|
|
191
170
|
fieldTypePlugins
|
|
192
171
|
});
|
|
193
|
-
|
|
194
172
|
if (!result) {
|
|
195
173
|
return null;
|
|
196
174
|
}
|
|
197
|
-
|
|
198
175
|
const {
|
|
199
176
|
fieldType,
|
|
200
177
|
typeDefs
|
|
@@ -210,16 +187,16 @@ const createObjectField = () => {
|
|
|
210
187
|
typeDefs: `${typeDefs}${childTypeDefs}`
|
|
211
188
|
};
|
|
212
189
|
},
|
|
213
|
-
|
|
214
190
|
createInputField({
|
|
191
|
+
models,
|
|
215
192
|
model,
|
|
216
193
|
field,
|
|
217
194
|
fieldTypePlugins
|
|
218
195
|
}) {
|
|
219
196
|
var _field$settings10, _field$settings11;
|
|
220
|
-
|
|
221
197
|
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
222
198
|
typeOfType: "input",
|
|
199
|
+
models,
|
|
223
200
|
model,
|
|
224
201
|
type: "manage",
|
|
225
202
|
typeNamePrefix: createTypeName({
|
|
@@ -230,11 +207,9 @@ const createObjectField = () => {
|
|
|
230
207
|
fields: ((_field$settings11 = field.settings) === null || _field$settings11 === void 0 ? void 0 : _field$settings11.fields) || [],
|
|
231
208
|
fieldTypePlugins
|
|
232
209
|
});
|
|
233
|
-
|
|
234
210
|
if (!result) {
|
|
235
211
|
return null;
|
|
236
212
|
}
|
|
237
|
-
|
|
238
213
|
const {
|
|
239
214
|
fieldType,
|
|
240
215
|
typeDefs
|
|
@@ -244,18 +219,15 @@ const createObjectField = () => {
|
|
|
244
219
|
typeDefs
|
|
245
220
|
};
|
|
246
221
|
},
|
|
247
|
-
|
|
248
222
|
createResolver({
|
|
249
223
|
graphQLType,
|
|
250
224
|
field,
|
|
251
225
|
createFieldResolvers
|
|
252
226
|
}) {
|
|
253
227
|
var _field$settings12;
|
|
254
|
-
|
|
255
228
|
if (!((_field$settings12 = field.settings) !== null && _field$settings12 !== void 0 && _field$settings12.fields) || field.settings.fields.length === 0) {
|
|
256
229
|
return false;
|
|
257
230
|
}
|
|
258
|
-
|
|
259
231
|
const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
|
|
260
232
|
const typeResolvers = createFieldResolvers({
|
|
261
233
|
graphQLType: fieldType,
|
|
@@ -266,10 +238,8 @@ const createObjectField = () => {
|
|
|
266
238
|
typeResolvers: typeResolvers || {}
|
|
267
239
|
};
|
|
268
240
|
},
|
|
269
|
-
|
|
270
241
|
createListFilters
|
|
271
242
|
}
|
|
272
243
|
};
|
|
273
244
|
};
|
|
274
|
-
|
|
275
245
|
exports.createObjectField = createObjectField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createChildTypeDefs","params","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","createListFilters","type","concat","fieldId","filter","Boolean","join","modelId","id","lodashUpperFirst","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","originalField","validate","originalFields","read","createTypeField","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","attachRequiredFieldValue"],"sources":["object.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { attachRequiredFieldValue } from \"./helpers\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: CmsModel;\n field: CmsModelField;\n plugins: CmsFieldTypePlugins;\n endpointType: \"manage\" | \"read\";\n}\nconst createChildTypeDefs = (params: AttachTypeDefinitionsParams): string => {\n const { field, plugins, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const createListFilters = plugins[child.type][endpointType].createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n plugins\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }`;\n};\n\ninterface CreateTypeNameParams {\n model: CmsModel;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.modelId]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return lodashUpperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n model: CmsModel;\n}\nconst createListFilters = ({ field, model }: CreateListFiltersParams) => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nexport const createObjectField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-object\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"object\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { field, originalField, validate } = params;\n\n validate({\n fields: field.settings?.fields || [],\n originalFields: originalField?.settings?.fields || []\n });\n },\n read: {\n createTypeField({ field, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createResolver({ field, createFieldResolvers, graphQLType }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n },\n manage: {\n createTypeField({ model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createInputField({ model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: attachRequiredFieldValue(\n `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,\n field\n ),\n typeDefs\n };\n },\n createResolver({ graphQLType, field, createFieldResolvers }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["createChildTypeDefs","params","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","createListFilters","type","concat","fieldId","filter","Boolean","join","singularApiName","id","lodashUpperFirst","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","originalField","validate","originalFields","read","createTypeField","models","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","attachRequiredFieldValue"],"sources":["object.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { attachRequiredFieldValue } from \"./helpers\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: CmsModel;\n field: CmsModelField;\n plugins: CmsFieldTypePlugins;\n endpointType: \"manage\" | \"read\";\n}\nconst createChildTypeDefs = (params: AttachTypeDefinitionsParams): string => {\n const { field, plugins, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const createListFilters = plugins[child.type][endpointType].createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n plugins\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }`;\n};\n\ninterface CreateTypeNameParams {\n model: CmsModel;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return lodashUpperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n model: CmsModel;\n}\nconst createListFilters = ({ field, model }: CreateListFiltersParams) => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nexport const createObjectField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-object\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"object\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { field, originalField, validate } = params;\n\n validate({\n fields: field.settings?.fields || [],\n originalFields: originalField?.settings?.fields || []\n });\n },\n read: {\n createTypeField({ field, models, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createResolver({ field, createFieldResolvers, graphQLType }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: attachRequiredFieldValue(\n `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,\n field\n ),\n typeDefs\n };\n },\n createResolver({ graphQLType, field, createFieldResolvers }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
|
package/graphqlFields/ref.js
CHANGED
|
@@ -1,24 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createRefField = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
9
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
12
10
|
var _createTypeName = require("../utils/createTypeName");
|
|
13
|
-
|
|
14
11
|
var _utils = require("@webiny/utils");
|
|
15
|
-
|
|
16
12
|
var _helpers = require("./helpers");
|
|
17
|
-
|
|
18
13
|
const createUnionTypeName = (model, field) => {
|
|
19
|
-
return `${
|
|
14
|
+
return `${model.singularApiName}_${(0, _createTypeName.createReadTypeName)(field.fieldId)}`;
|
|
20
15
|
};
|
|
21
|
-
|
|
22
16
|
const createListFilters = ({
|
|
23
17
|
field
|
|
24
18
|
}) => {
|
|
@@ -26,7 +20,6 @@ const createListFilters = ({
|
|
|
26
20
|
${field.fieldId}: RefFieldWhereInput
|
|
27
21
|
`;
|
|
28
22
|
};
|
|
29
|
-
|
|
30
23
|
const createFilteringTypeDef = () => {
|
|
31
24
|
return `
|
|
32
25
|
input RefFieldWhereInput {
|
|
@@ -41,7 +34,6 @@ const createFilteringTypeDef = () => {
|
|
|
41
34
|
}
|
|
42
35
|
`;
|
|
43
36
|
};
|
|
44
|
-
|
|
45
37
|
const appendTypename = (entries, typename) => {
|
|
46
38
|
return entries.map(item => {
|
|
47
39
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
|
|
@@ -53,18 +45,30 @@ const appendTypename = (entries, typename) => {
|
|
|
53
45
|
* We cast settings.models as object to have modelId because internally we know that it is so.
|
|
54
46
|
* Internal stuff so we are sure that settings.models contains what we require.
|
|
55
47
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
48
|
const getFieldModels = field => {
|
|
59
49
|
if (!field.settings || Array.isArray(field.settings.models) === false) {
|
|
60
50
|
return [];
|
|
61
51
|
}
|
|
62
|
-
|
|
63
52
|
return field.settings.models;
|
|
64
53
|
};
|
|
65
|
-
|
|
66
54
|
const modelIdToTypeName = new Map();
|
|
67
|
-
|
|
55
|
+
const getModel = params => {
|
|
56
|
+
const {
|
|
57
|
+
models,
|
|
58
|
+
modelId
|
|
59
|
+
} = params;
|
|
60
|
+
const model = models.find(item => item.modelId === modelId);
|
|
61
|
+
if (model) {
|
|
62
|
+
return model;
|
|
63
|
+
}
|
|
64
|
+
throw new _error.default(`Could not find model with ID "${modelId}" in the list of models.`, "MODEL_NOT_FOUND", {
|
|
65
|
+
modelId
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
const getModelSingularApiName = params => {
|
|
69
|
+
const model = getModel(params);
|
|
70
|
+
return model.singularApiName;
|
|
71
|
+
};
|
|
68
72
|
const createRefField = () => {
|
|
69
73
|
return {
|
|
70
74
|
name: "cms-model-field-to-graphql-ref",
|
|
@@ -75,126 +79,123 @@ const createRefField = () => {
|
|
|
75
79
|
read: {
|
|
76
80
|
createTypeField({
|
|
77
81
|
model,
|
|
78
|
-
field
|
|
82
|
+
field,
|
|
83
|
+
models
|
|
79
84
|
}) {
|
|
80
85
|
var _field$settings;
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
86
|
+
const fieldModels = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.models) || [];
|
|
87
|
+
const gqlType = fieldModels.length > 1 ? createUnionTypeName(model, field) : (0, _createTypeName.createReadTypeName)(getModelSingularApiName({
|
|
88
|
+
models,
|
|
89
|
+
modelId: fieldModels[0].modelId
|
|
90
|
+
}));
|
|
91
|
+
const typeDefs = fieldModels.length > 1 ? `union ${gqlType} = ${getFieldModels(field).map(({
|
|
85
92
|
modelId
|
|
86
|
-
}) => (0, _createTypeName.createReadTypeName)(
|
|
93
|
+
}) => (0, _createTypeName.createReadTypeName)(getModelSingularApiName({
|
|
94
|
+
models,
|
|
95
|
+
modelId
|
|
96
|
+
}))).join(" | ")}` : "";
|
|
87
97
|
return {
|
|
88
98
|
fields: field.fieldId + `(populate: Boolean = true): ${field.multipleValues ? `[${gqlType}!]` : gqlType}`,
|
|
89
99
|
typeDefs
|
|
90
100
|
};
|
|
91
101
|
},
|
|
92
|
-
|
|
93
102
|
/**
|
|
94
103
|
* TS is complaining about mixed types for createResolver.
|
|
95
104
|
* TODO @ts-refactor @pavel Maybe we should have a single createResolver method?
|
|
96
105
|
*/
|
|
97
106
|
// @ts-ignore
|
|
98
|
-
createResolver(
|
|
107
|
+
createResolver({
|
|
108
|
+
field,
|
|
109
|
+
models
|
|
110
|
+
}) {
|
|
99
111
|
var _field$settings2;
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
for (const item of models) {
|
|
108
|
-
modelIdToTypeName.set(item.modelId, (0, _createTypeName.createReadTypeName)(item.modelId));
|
|
112
|
+
// Create a map of model types and corresponding modelIds so resolvers don't need to perform the lookup.
|
|
113
|
+
const fieldModels = ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.models) || [];
|
|
114
|
+
for (const item of fieldModels) {
|
|
115
|
+
modelIdToTypeName.set(item.modelId, (0, _createTypeName.createReadTypeName)(getModelSingularApiName({
|
|
116
|
+
models,
|
|
117
|
+
modelId: item.modelId
|
|
118
|
+
})));
|
|
109
119
|
}
|
|
110
|
-
|
|
111
120
|
return async (parent, args, context) => {
|
|
112
121
|
const {
|
|
113
122
|
cms
|
|
114
|
-
} = context;
|
|
123
|
+
} = context;
|
|
115
124
|
|
|
125
|
+
// Get field value for this entry
|
|
116
126
|
const initialValue = parent[field.fieldId];
|
|
117
|
-
|
|
118
127
|
if (!initialValue) {
|
|
119
128
|
return null;
|
|
120
129
|
}
|
|
121
|
-
|
|
122
130
|
if (args.populate === false) {
|
|
123
131
|
return initialValue;
|
|
124
132
|
}
|
|
125
|
-
|
|
126
133
|
if (field.multipleValues) {
|
|
127
134
|
/**
|
|
128
135
|
* We cast because value really can be array and single value.
|
|
129
136
|
* At this point, we are 99% sure that it is an array (+ we check for it)
|
|
130
137
|
*/
|
|
131
138
|
const value = initialValue;
|
|
132
|
-
|
|
133
139
|
if (Array.isArray(value) === false || value.length === 0) {
|
|
134
140
|
return [];
|
|
135
141
|
}
|
|
136
|
-
|
|
137
142
|
const entriesByModel = value.reduce((collection, ref) => {
|
|
138
143
|
if (!collection[ref.modelId]) {
|
|
139
144
|
collection[ref.modelId] = [];
|
|
140
145
|
} else if (collection[ref.modelId].includes(ref.entryId) === true) {
|
|
141
146
|
return collection;
|
|
142
147
|
}
|
|
143
|
-
|
|
144
148
|
collection[ref.modelId].push(ref.entryId);
|
|
145
149
|
return collection;
|
|
146
150
|
}, {});
|
|
147
151
|
const getters = Object.keys(entriesByModel).map(async modelId => {
|
|
148
|
-
const idList = entriesByModel[modelId];
|
|
149
|
-
|
|
152
|
+
const idList = entriesByModel[modelId];
|
|
153
|
+
// Get model manager, to get access to CRUD methods
|
|
150
154
|
const model = await cms.getModelManager(modelId);
|
|
151
|
-
let entries;
|
|
152
|
-
|
|
155
|
+
let entries;
|
|
156
|
+
// `read` API works with `published` data
|
|
153
157
|
if (cms.READ) {
|
|
154
158
|
entries = await model.getPublishedByIds(idList);
|
|
155
|
-
}
|
|
159
|
+
}
|
|
160
|
+
// `preview` and `manage` with `latest` data
|
|
156
161
|
else {
|
|
157
162
|
entries = await model.getLatestByIds(idList);
|
|
158
163
|
}
|
|
159
|
-
|
|
160
164
|
return appendTypename(entries, modelIdToTypeName.get(modelId));
|
|
161
165
|
});
|
|
162
166
|
return await Promise.all(getters).then(results => results.reduce((result, item) => result.concat(item), []));
|
|
163
167
|
}
|
|
168
|
+
const value = initialValue;
|
|
164
169
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
+
// Get model manager, to get access to CRUD methods
|
|
171
|
+
const model = await cms.getEntryManager(value.modelId);
|
|
172
|
+
let revisions;
|
|
173
|
+
// `read` API works with `published` data
|
|
170
174
|
if (cms.READ) {
|
|
171
175
|
revisions = await model.getPublishedByIds([value.entryId]);
|
|
172
|
-
}
|
|
176
|
+
}
|
|
177
|
+
// `preview` API works with `latest` data
|
|
173
178
|
else {
|
|
174
179
|
revisions = await model.getLatestByIds([value.entryId]);
|
|
175
180
|
}
|
|
181
|
+
|
|
176
182
|
/**
|
|
177
183
|
* If there are no revisions we must return null.
|
|
178
184
|
*/
|
|
179
|
-
|
|
180
|
-
|
|
181
185
|
if (!revisions || revisions.length === 0) {
|
|
182
186
|
return null;
|
|
183
187
|
}
|
|
184
|
-
|
|
185
188
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, revisions[0]), {}, {
|
|
186
189
|
__typename: modelIdToTypeName.get(value.modelId)
|
|
187
190
|
});
|
|
188
191
|
};
|
|
189
192
|
},
|
|
190
|
-
|
|
191
193
|
createSchema() {
|
|
192
194
|
return {
|
|
193
195
|
typeDefs: createFilteringTypeDef(),
|
|
194
196
|
resolvers: {}
|
|
195
197
|
};
|
|
196
198
|
},
|
|
197
|
-
|
|
198
199
|
createListFilters
|
|
199
200
|
},
|
|
200
201
|
manage: {
|
|
@@ -205,9 +206,7 @@ const createRefField = () => {
|
|
|
205
206
|
* See: `packages/api-headless-cms/src/crud/contentEntry/referenceFieldsMapping.ts`
|
|
206
207
|
*/
|
|
207
208
|
return {
|
|
208
|
-
typeDefs:
|
|
209
|
-
/* GraphQL */
|
|
210
|
-
`
|
|
209
|
+
typeDefs: /* GraphQL */`
|
|
211
210
|
type RefField {
|
|
212
211
|
modelId: String!
|
|
213
212
|
entryId: ID!
|
|
@@ -236,26 +235,21 @@ const createRefField = () => {
|
|
|
236
235
|
}
|
|
237
236
|
};
|
|
238
237
|
},
|
|
239
|
-
|
|
240
238
|
createTypeField({
|
|
241
239
|
field
|
|
242
240
|
}) {
|
|
243
241
|
if (field.multipleValues) {
|
|
244
242
|
return `${field.fieldId}: [RefField!]`;
|
|
245
243
|
}
|
|
246
|
-
|
|
247
244
|
return `${field.fieldId}: RefField`;
|
|
248
245
|
},
|
|
249
|
-
|
|
250
246
|
createInputField({
|
|
251
247
|
field
|
|
252
248
|
}) {
|
|
253
249
|
return (0, _helpers.createGraphQLInputField)(field, "RefFieldInput");
|
|
254
250
|
},
|
|
255
|
-
|
|
256
251
|
createListFilters
|
|
257
252
|
}
|
|
258
253
|
};
|
|
259
254
|
};
|
|
260
|
-
|
|
261
255
|
exports.createRefField = createRefField;
|