@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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createDynamicZoneStorageTransform = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _plugins = require("../../plugins");
|
|
10
|
+
const convertToStorage = (value, templates) => {
|
|
11
|
+
// Only one key is allowed in the input object.
|
|
12
|
+
const inputType = Object.keys(value)[0];
|
|
13
|
+
const template = templates.find(tpl => tpl.gqlTypeName === inputType);
|
|
14
|
+
if (!template) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, value[inputType]), {}, {
|
|
18
|
+
_templateId: template.id
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const convertFromStorage = (value, templates) => {
|
|
22
|
+
const template = templates.find(tpl => value._templateId === tpl.id);
|
|
23
|
+
if (!template) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// We keep the `_templateId` property, to simplify further processing.
|
|
28
|
+
return {
|
|
29
|
+
[template.gqlTypeName]: value
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const createDynamicZoneStorageTransform = () => {
|
|
33
|
+
return new _plugins.StorageTransformPlugin({
|
|
34
|
+
fieldType: "dynamicZone",
|
|
35
|
+
fromStorage: async ({
|
|
36
|
+
value,
|
|
37
|
+
field
|
|
38
|
+
}) => {
|
|
39
|
+
if (!value) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const templates = field.settings.templates;
|
|
43
|
+
if (Array.isArray(value) && field.multipleValues) {
|
|
44
|
+
return value.map(value => convertFromStorage(value, templates)).filter(Boolean);
|
|
45
|
+
}
|
|
46
|
+
return convertFromStorage(value, templates);
|
|
47
|
+
},
|
|
48
|
+
toStorage: async ({
|
|
49
|
+
value,
|
|
50
|
+
field
|
|
51
|
+
}) => {
|
|
52
|
+
if (!value) {
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
const templates = field.settings.templates;
|
|
56
|
+
if (Array.isArray(value) && field.multipleValues) {
|
|
57
|
+
return value.map(value => convertToStorage(value, templates)).filter(Boolean);
|
|
58
|
+
}
|
|
59
|
+
return convertToStorage(value, templates);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
exports.createDynamicZoneStorageTransform = createDynamicZoneStorageTransform;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["convertToStorage","value","templates","inputType","Object","keys","template","find","tpl","gqlTypeName","undefined","_templateId","id","convertFromStorage","createDynamicZoneStorageTransform","StorageTransformPlugin","fieldType","fromStorage","field","settings","Array","isArray","multipleValues","map","filter","Boolean","toStorage"],"sources":["dynamicZoneStorage.ts"],"sourcesContent":["import { CmsDynamicZoneTemplate, CmsModelDynamicZoneField } from \"~/types\";\nimport { StorageTransformPlugin } from \"~/plugins\";\n\nconst convertToStorage = (value: any, templates: CmsDynamicZoneTemplate[]) => {\n // Only one key is allowed in the input object.\n const inputType = Object.keys(value)[0];\n const template = templates.find(tpl => tpl.gqlTypeName === inputType);\n if (!template) {\n return undefined;\n }\n\n return { ...value[inputType], _templateId: template.id };\n};\n\ninterface TemplateValueFromStorage {\n _templateId: string;\n [key: string]: any;\n}\n\nconst convertFromStorage = (\n value: TemplateValueFromStorage,\n templates: CmsDynamicZoneTemplate[]\n) => {\n const template = templates.find(tpl => value._templateId === tpl.id);\n if (!template) {\n return undefined;\n }\n\n // We keep the `_templateId` property, to simplify further processing.\n return { [template.gqlTypeName]: value };\n};\n\nexport const createDynamicZoneStorageTransform = () => {\n return new StorageTransformPlugin<any, any, CmsModelDynamicZoneField>({\n fieldType: \"dynamicZone\",\n fromStorage: async ({ value, field }) => {\n if (!value) {\n return null;\n }\n\n const templates = field.settings.templates;\n\n if (Array.isArray(value) && field.multipleValues) {\n return value.map(value => convertFromStorage(value, templates)).filter(Boolean);\n }\n\n return convertFromStorage(value, templates);\n },\n toStorage: async ({ value, field }) => {\n if (!value) {\n return value;\n }\n\n const templates = field.settings.templates;\n\n if (Array.isArray(value) && field.multipleValues) {\n return value.map(value => convertToStorage(value, templates)).filter(Boolean);\n }\n\n return convertToStorage(value, templates);\n }\n });\n};\n"],"mappings":";;;;;;;;AACA;AAEA,MAAMA,gBAAgB,GAAG,CAACC,KAAU,EAAEC,SAAmC,KAAK;EAC1E;EACA,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;EACvC,MAAMK,QAAQ,GAAGJ,SAAS,CAACK,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACC,WAAW,KAAKN,SAAS,CAAC;EACrE,IAAI,CAACG,QAAQ,EAAE;IACX,OAAOI,SAAS;EACpB;EAEA,mEAAYT,KAAK,CAACE,SAAS,CAAC;IAAEQ,WAAW,EAAEL,QAAQ,CAACM;EAAE;AAC1D,CAAC;AAOD,MAAMC,kBAAkB,GAAG,CACvBZ,KAA+B,EAC/BC,SAAmC,KAClC;EACD,MAAMI,QAAQ,GAAGJ,SAAS,CAACK,IAAI,CAACC,GAAG,IAAIP,KAAK,CAACU,WAAW,KAAKH,GAAG,CAACI,EAAE,CAAC;EACpE,IAAI,CAACN,QAAQ,EAAE;IACX,OAAOI,SAAS;EACpB;;EAEA;EACA,OAAO;IAAE,CAACJ,QAAQ,CAACG,WAAW,GAAGR;EAAM,CAAC;AAC5C,CAAC;AAEM,MAAMa,iCAAiC,GAAG,MAAM;EACnD,OAAO,IAAIC,+BAAsB,CAAqC;IAClEC,SAAS,EAAE,aAAa;IACxBC,WAAW,EAAE,OAAO;MAAEhB,KAAK;MAAEiB;IAAM,CAAC,KAAK;MACrC,IAAI,CAACjB,KAAK,EAAE;QACR,OAAO,IAAI;MACf;MAEA,MAAMC,SAAS,GAAGgB,KAAK,CAACC,QAAQ,CAACjB,SAAS;MAE1C,IAAIkB,KAAK,CAACC,OAAO,CAACpB,KAAK,CAAC,IAAIiB,KAAK,CAACI,cAAc,EAAE;QAC9C,OAAOrB,KAAK,CAACsB,GAAG,CAACtB,KAAK,IAAIY,kBAAkB,CAACZ,KAAK,EAAEC,SAAS,CAAC,CAAC,CAACsB,MAAM,CAACC,OAAO,CAAC;MACnF;MAEA,OAAOZ,kBAAkB,CAACZ,KAAK,EAAEC,SAAS,CAAC;IAC/C,CAAC;IACDwB,SAAS,EAAE,OAAO;MAAEzB,KAAK;MAAEiB;IAAM,CAAC,KAAK;MACnC,IAAI,CAACjB,KAAK,EAAE;QACR,OAAOA,KAAK;MAChB;MAEA,MAAMC,SAAS,GAAGgB,KAAK,CAACC,QAAQ,CAACjB,SAAS;MAE1C,IAAIkB,KAAK,CAACC,OAAO,CAACpB,KAAK,CAAC,IAAIiB,KAAK,CAACI,cAAc,EAAE;QAC9C,OAAOrB,KAAK,CAACsB,GAAG,CAACtB,KAAK,IAAID,gBAAgB,CAACC,KAAK,EAAEC,SAAS,CAAC,CAAC,CAACsB,MAAM,CAACC,OAAO,CAAC;MACjF;MAEA,OAAOzB,gBAAgB,CAACC,KAAK,EAAEC,SAAS,CAAC;IAC7C;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "createDynamicZoneField", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _dynamicZoneField.createDynamicZoneField;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "createDynamicZoneStorageTransform", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _dynamicZoneStorage.createDynamicZoneStorageTransform;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _dynamicZoneField = require("./dynamicZoneField");
|
|
19
|
+
var _dynamicZoneStorage = require("./dynamicZoneStorage");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { createDynamicZoneField } from \"./dynamicZoneField\";\nexport { createDynamicZoneStorageTransform } from \"./dynamicZoneStorage\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA"}
|
package/graphqlFields/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { CmsModelFieldToGraphQLPlugin } from "../types";
|
|
2
|
-
export declare const createGraphQLFields: () => CmsModelFieldToGraphQLPlugin[];
|
|
2
|
+
export declare const createGraphQLFields: () => CmsModelFieldToGraphQLPlugin<any>[];
|
package/graphqlFields/index.js
CHANGED
|
@@ -13,5 +13,6 @@ var _datetime = require("./datetime");
|
|
|
13
13
|
var _richText = require("./richText");
|
|
14
14
|
var _file = require("./file");
|
|
15
15
|
var _object = require("./object");
|
|
16
|
-
|
|
16
|
+
var _dynamicZone = require("./dynamicZone");
|
|
17
|
+
const createGraphQLFields = () => [(0, _text.createTextField)(), (0, _ref.createRefField)(), (0, _number.createNumberField)(), (0, _datetime.createDateTimeField)(), (0, _boolean.createBooleanField)(), (0, _longText.createLongTextField)(), (0, _richText.createRichTextField)(), (0, _file.createFileField)(), (0, _object.createObjectField)(), (0, _dynamicZone.createDynamicZoneField)()];
|
|
17
18
|
exports.createGraphQLFields = createGraphQLFields;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createGraphQLFields","createTextField","createRefField","createNumberField","createDateTimeField","createBooleanField","createLongTextField","createRichTextField","createFileField","createObjectField"],"sources":["index.ts"],"sourcesContent":["import { createTextField } from \"./text\";\nimport { createLongTextField } from \"./longText\";\nimport { createRefField } from \"./ref\";\nimport { createNumberField } from \"./number\";\nimport { createBooleanField } from \"./boolean\";\nimport { createDateTimeField } from \"./datetime\";\nimport { createRichTextField } from \"./richText\";\nimport { createFileField } from \"./file\";\nimport { createObjectField } from \"./object\";\nimport { CmsModelFieldToGraphQLPlugin } from \"~/types\";\n\nexport const createGraphQLFields = (): CmsModelFieldToGraphQLPlugin[] => [\n createTextField(),\n createRefField(),\n createNumberField(),\n createDateTimeField(),\n createBooleanField(),\n createLongTextField(),\n createRichTextField(),\n createFileField(),\n createObjectField()\n];\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGO,MAAMA,mBAAmB,GAAG,
|
|
1
|
+
{"version":3,"names":["createGraphQLFields","createTextField","createRefField","createNumberField","createDateTimeField","createBooleanField","createLongTextField","createRichTextField","createFileField","createObjectField","createDynamicZoneField"],"sources":["index.ts"],"sourcesContent":["import { createTextField } from \"./text\";\nimport { createLongTextField } from \"./longText\";\nimport { createRefField } from \"./ref\";\nimport { createNumberField } from \"./number\";\nimport { createBooleanField } from \"./boolean\";\nimport { createDateTimeField } from \"./datetime\";\nimport { createRichTextField } from \"./richText\";\nimport { createFileField } from \"./file\";\nimport { createObjectField } from \"./object\";\nimport { createDynamicZoneField } from \"~/graphqlFields/dynamicZone\";\nimport { CmsModelFieldToGraphQLPlugin } from \"~/types\";\n\nexport const createGraphQLFields = (): CmsModelFieldToGraphQLPlugin<any>[] => [\n createTextField(),\n createRefField(),\n createNumberField(),\n createDateTimeField(),\n createBooleanField(),\n createLongTextField(),\n createRichTextField(),\n createFileField(),\n createObjectField(),\n createDynamicZoneField()\n];\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGO,MAAMA,mBAAmB,GAAG,MAA2C,CAC1E,IAAAC,qBAAe,GAAE,EACjB,IAAAC,mBAAc,GAAE,EAChB,IAAAC,yBAAiB,GAAE,EACnB,IAAAC,6BAAmB,GAAE,EACrB,IAAAC,2BAAkB,GAAE,EACpB,IAAAC,6BAAmB,GAAE,EACrB,IAAAC,6BAAmB,GAAE,EACrB,IAAAC,qBAAe,GAAE,EACjB,IAAAC,yBAAiB,GAAE,EACnB,IAAAC,mCAAsB,GAAE,CAC3B;AAAC"}
|
package/graphqlFields/number.js
CHANGED
|
@@ -17,6 +17,10 @@ const createListFilters = ({
|
|
|
17
17
|
${field.fieldId}_lte: Number
|
|
18
18
|
${field.fieldId}_gt: Number
|
|
19
19
|
${field.fieldId}_gte: Number
|
|
20
|
+
# there must be two numbers sent in the array
|
|
21
|
+
${field.fieldId}_between: [Number!]
|
|
22
|
+
# there must be two numbers sent in the array
|
|
23
|
+
${field.fieldId}_not_between: [Number!]
|
|
20
24
|
`;
|
|
21
25
|
};
|
|
22
26
|
const 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 `;\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,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"}
|
|
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
|
@@ -5,69 +5,69 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.createObjectField = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
9
|
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
|
|
9
|
-
var _renderFields = require("../utils/renderFields");
|
|
10
|
-
var _renderInputFields = require("../utils/renderInputFields");
|
|
11
|
-
var _createTypeName = require("../utils/createTypeName");
|
|
12
10
|
var _helpers = require("./helpers");
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
var _createTypeFromFields = require("../utils/createTypeFromFields");
|
|
12
|
+
const createChildTypeDefs = params => {
|
|
13
|
+
var _field$settings, _field$settings2;
|
|
15
14
|
const {
|
|
16
|
-
typeOfType,
|
|
17
|
-
model,
|
|
18
|
-
type,
|
|
19
15
|
field,
|
|
20
|
-
|
|
16
|
+
plugins,
|
|
17
|
+
model,
|
|
18
|
+
endpointType
|
|
21
19
|
} = params;
|
|
22
|
-
const typeSuffix = typeOfType === "input" ? "Input" : "";
|
|
23
|
-
const typeName = (0, _createTypeName.createTypeName)(model.modelId);
|
|
24
|
-
const mTypeName = (0, _createTypeName.createManageTypeName)(typeName);
|
|
25
|
-
|
|
26
|
-
// `field` is an "object" field
|
|
27
20
|
const fields = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields) || [];
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
field: f,
|
|
41
|
-
type,
|
|
42
|
-
model,
|
|
43
|
-
fieldTypePlugins
|
|
44
|
-
}) : (0, _renderInputFields.renderInputField)({
|
|
45
|
-
field: f,
|
|
21
|
+
const typeName = createTypeName({
|
|
22
|
+
model,
|
|
23
|
+
field,
|
|
24
|
+
parents: (_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.parents
|
|
25
|
+
});
|
|
26
|
+
const filters = fields.map(child => {
|
|
27
|
+
var _child$settings;
|
|
28
|
+
const createListFilters = plugins[child.type][endpointType].createListFilters;
|
|
29
|
+
if (!createListFilters) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const filters = createListFilters({
|
|
46
33
|
model,
|
|
47
|
-
|
|
34
|
+
field: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
35
|
+
settings: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child.settings), {}, {
|
|
36
|
+
parents: (((_child$settings = child.settings) === null || _child$settings === void 0 ? void 0 : _child$settings.parents) || []).concat([field.fieldId])
|
|
37
|
+
})
|
|
38
|
+
}),
|
|
39
|
+
plugins
|
|
48
40
|
});
|
|
49
|
-
if (!
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
const {
|
|
53
|
-
fields,
|
|
54
|
-
typeDefs
|
|
55
|
-
} = result;
|
|
56
|
-
typeFields.push(fields.replace(replace, `${fieldTypeName}_`));
|
|
57
|
-
if (typeDefs) {
|
|
58
|
-
nestedTypes.push(typeDefs.replace(replace, `${fieldTypeName}_`));
|
|
41
|
+
if (!filters) {
|
|
42
|
+
return null;
|
|
59
43
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
44
|
+
return filters;
|
|
45
|
+
}).filter(Boolean).join("\n");
|
|
46
|
+
return `input ${typeName}WhereInput {
|
|
47
|
+
${filters || "_empty: String"}
|
|
48
|
+
}`;
|
|
49
|
+
};
|
|
50
|
+
const createTypeName = params => {
|
|
51
|
+
const {
|
|
52
|
+
model,
|
|
53
|
+
parents = [],
|
|
54
|
+
field
|
|
55
|
+
} = params;
|
|
56
|
+
return [model.modelId].concat(parents).concat([field.fieldId]).filter(Boolean).map(id => {
|
|
57
|
+
return (0, _upperFirst.default)(id);
|
|
58
|
+
}).join("_");
|
|
59
|
+
};
|
|
60
|
+
const createListFilters = ({
|
|
61
|
+
field,
|
|
62
|
+
model
|
|
63
|
+
}) => {
|
|
64
|
+
var _field$settings3;
|
|
65
|
+
const typeName = createTypeName({
|
|
66
|
+
model,
|
|
67
|
+
field,
|
|
68
|
+
parents: (_field$settings3 = field.settings) === null || _field$settings3 === void 0 ? void 0 : _field$settings3.parents
|
|
69
|
+
});
|
|
70
|
+
return `${field.fieldId}: ${typeName}WhereInput`;
|
|
71
71
|
};
|
|
72
72
|
const createObjectField = () => {
|
|
73
73
|
return {
|
|
@@ -76,17 +76,35 @@ const createObjectField = () => {
|
|
|
76
76
|
fieldType: "object",
|
|
77
77
|
isSortable: false,
|
|
78
78
|
isSearchable: false,
|
|
79
|
+
validateChildFields: params => {
|
|
80
|
+
var _field$settings4, _originalField$settin;
|
|
81
|
+
const {
|
|
82
|
+
field,
|
|
83
|
+
originalField,
|
|
84
|
+
validate
|
|
85
|
+
} = params;
|
|
86
|
+
validate({
|
|
87
|
+
fields: ((_field$settings4 = field.settings) === null || _field$settings4 === void 0 ? void 0 : _field$settings4.fields) || [],
|
|
88
|
+
originalFields: (originalField === null || originalField === void 0 ? void 0 : (_originalField$settin = originalField.settings) === null || _originalField$settin === void 0 ? void 0 : _originalField$settin.fields) || []
|
|
89
|
+
});
|
|
90
|
+
},
|
|
79
91
|
read: {
|
|
80
92
|
createTypeField({
|
|
81
93
|
field,
|
|
82
94
|
model,
|
|
83
95
|
fieldTypePlugins
|
|
84
96
|
}) {
|
|
85
|
-
|
|
97
|
+
var _field$settings5, _field$settings6;
|
|
98
|
+
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
86
99
|
typeOfType: "type",
|
|
87
100
|
model,
|
|
88
101
|
type: "read",
|
|
89
|
-
|
|
102
|
+
typeNamePrefix: createTypeName({
|
|
103
|
+
model,
|
|
104
|
+
field,
|
|
105
|
+
parents: (_field$settings5 = field.settings) === null || _field$settings5 === void 0 ? void 0 : _field$settings5.parents
|
|
106
|
+
}),
|
|
107
|
+
fields: ((_field$settings6 = field.settings) === null || _field$settings6 === void 0 ? void 0 : _field$settings6.fields) || [],
|
|
90
108
|
fieldTypePlugins
|
|
91
109
|
});
|
|
92
110
|
if (!result) {
|
|
@@ -96,9 +114,15 @@ const createObjectField = () => {
|
|
|
96
114
|
fieldType,
|
|
97
115
|
typeDefs
|
|
98
116
|
} = result;
|
|
117
|
+
const childTypeDefs = createChildTypeDefs({
|
|
118
|
+
model,
|
|
119
|
+
field,
|
|
120
|
+
plugins: fieldTypePlugins,
|
|
121
|
+
endpointType: "read"
|
|
122
|
+
});
|
|
99
123
|
return {
|
|
100
124
|
fields: `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,
|
|
101
|
-
typeDefs
|
|
125
|
+
typeDefs: `${typeDefs}${childTypeDefs}`
|
|
102
126
|
};
|
|
103
127
|
},
|
|
104
128
|
createResolver({
|
|
@@ -106,8 +130,8 @@ const createObjectField = () => {
|
|
|
106
130
|
createFieldResolvers,
|
|
107
131
|
graphQLType
|
|
108
132
|
}) {
|
|
109
|
-
var _field$
|
|
110
|
-
if (!((_field$
|
|
133
|
+
var _field$settings7;
|
|
134
|
+
if (!((_field$settings7 = field.settings) !== null && _field$settings7 !== void 0 && _field$settings7.fields) || field.settings.fields.length === 0) {
|
|
111
135
|
return false;
|
|
112
136
|
}
|
|
113
137
|
const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
|
|
@@ -119,7 +143,8 @@ const createObjectField = () => {
|
|
|
119
143
|
resolver: null,
|
|
120
144
|
typeResolvers: typeResolvers || {}
|
|
121
145
|
};
|
|
122
|
-
}
|
|
146
|
+
},
|
|
147
|
+
createListFilters
|
|
123
148
|
},
|
|
124
149
|
manage: {
|
|
125
150
|
createTypeField({
|
|
@@ -127,11 +152,17 @@ const createObjectField = () => {
|
|
|
127
152
|
field,
|
|
128
153
|
fieldTypePlugins
|
|
129
154
|
}) {
|
|
130
|
-
|
|
155
|
+
var _field$settings8, _field$settings9;
|
|
156
|
+
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
131
157
|
typeOfType: "type",
|
|
132
158
|
model,
|
|
133
159
|
type: "manage",
|
|
134
|
-
|
|
160
|
+
typeNamePrefix: createTypeName({
|
|
161
|
+
model,
|
|
162
|
+
field,
|
|
163
|
+
parents: (_field$settings8 = field.settings) === null || _field$settings8 === void 0 ? void 0 : _field$settings8.parents
|
|
164
|
+
}),
|
|
165
|
+
fields: ((_field$settings9 = field.settings) === null || _field$settings9 === void 0 ? void 0 : _field$settings9.fields) || [],
|
|
135
166
|
fieldTypePlugins
|
|
136
167
|
});
|
|
137
168
|
if (!result) {
|
|
@@ -141,9 +172,15 @@ const createObjectField = () => {
|
|
|
141
172
|
fieldType,
|
|
142
173
|
typeDefs
|
|
143
174
|
} = result;
|
|
175
|
+
const childTypeDefs = createChildTypeDefs({
|
|
176
|
+
model,
|
|
177
|
+
field,
|
|
178
|
+
plugins: fieldTypePlugins,
|
|
179
|
+
endpointType: "manage"
|
|
180
|
+
});
|
|
144
181
|
return {
|
|
145
182
|
fields: `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,
|
|
146
|
-
typeDefs
|
|
183
|
+
typeDefs: `${typeDefs}${childTypeDefs}`
|
|
147
184
|
};
|
|
148
185
|
},
|
|
149
186
|
createInputField({
|
|
@@ -151,11 +188,17 @@ const createObjectField = () => {
|
|
|
151
188
|
field,
|
|
152
189
|
fieldTypePlugins
|
|
153
190
|
}) {
|
|
154
|
-
|
|
191
|
+
var _field$settings10, _field$settings11;
|
|
192
|
+
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
155
193
|
typeOfType: "input",
|
|
156
194
|
model,
|
|
157
195
|
type: "manage",
|
|
158
|
-
|
|
196
|
+
typeNamePrefix: createTypeName({
|
|
197
|
+
model,
|
|
198
|
+
field,
|
|
199
|
+
parents: (_field$settings10 = field.settings) === null || _field$settings10 === void 0 ? void 0 : _field$settings10.parents
|
|
200
|
+
}),
|
|
201
|
+
fields: ((_field$settings11 = field.settings) === null || _field$settings11 === void 0 ? void 0 : _field$settings11.fields) || [],
|
|
159
202
|
fieldTypePlugins
|
|
160
203
|
});
|
|
161
204
|
if (!result) {
|
|
@@ -175,8 +218,8 @@ const createObjectField = () => {
|
|
|
175
218
|
field,
|
|
176
219
|
createFieldResolvers
|
|
177
220
|
}) {
|
|
178
|
-
var _field$
|
|
179
|
-
if (!((_field$
|
|
221
|
+
var _field$settings12;
|
|
222
|
+
if (!((_field$settings12 = field.settings) !== null && _field$settings12 !== void 0 && _field$settings12.fields) || field.settings.fields.length === 0) {
|
|
180
223
|
return false;
|
|
181
224
|
}
|
|
182
225
|
const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
|
|
@@ -188,7 +231,8 @@ const createObjectField = () => {
|
|
|
188
231
|
resolver: null,
|
|
189
232
|
typeResolvers: typeResolvers || {}
|
|
190
233
|
};
|
|
191
|
-
}
|
|
234
|
+
},
|
|
235
|
+
createListFilters
|
|
192
236
|
}
|
|
193
237
|
};
|
|
194
238
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["typeFromField","params","typeOfType","model","type","field","fieldTypePlugins","typeSuffix","typeName","createTypeName","modelId","mTypeName","createManageTypeName","fields","settings","fieldTypeName","upperFirst","fieldId","typeFields","nestedTypes","replace","RegExp","f","result","renderField","renderInputField","typeDefs","push","fieldType","join","createObjectField","name","isSortable","isSearchable","read","createTypeField","multipleValues","createResolver","createFieldResolvers","graphQLType","length","typeResolvers","resolver","manage","createInputField","attachRequiredFieldValue"],"sources":["object.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport {\n ApiEndpoint,\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { renderField } from \"~/utils/renderFields\";\nimport { renderInputField } from \"~/utils/renderInputFields\";\nimport { createManageTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { attachRequiredFieldValue } from \"./helpers\";\n\ninterface TypeFromFieldParams {\n typeOfType: string;\n model: CmsModel;\n type: ApiEndpoint;\n field: CmsModelField;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface TypeFromFieldResponse {\n fieldType: string;\n typeDefs: string;\n}\nconst typeFromField = (params: TypeFromFieldParams): TypeFromFieldResponse | null => {\n const { typeOfType, model, type, field, fieldTypePlugins } = params;\n const typeSuffix = typeOfType === \"input\" ? \"Input\" : \"\";\n const typeName = createTypeName(model.modelId);\n const mTypeName = createManageTypeName(typeName);\n\n // `field` is an \"object\" field\n const fields: CmsModelField[] = field.settings?.fields || [];\n\n const fieldTypeName = `${mTypeName}_${upperFirst(field.fieldId)}`;\n\n const typeFields = [];\n const nestedTypes = [];\n\n // Once the loop below starts, we'll be executing a recursive \"object\" type generation.\n // The main trick here is that nested objects don't know who the parent is, and will generate\n // type names using the \"model\", as if they're at the top level:\n // Every time the types are returned, we need to replace the model name in the generated type name\n // with the actual prefix which includes parent field name type.\n const replace = new RegExp(`${mTypeName}_`, \"g\");\n\n for (const f of fields) {\n const result =\n typeOfType === \"type\"\n ? renderField({ field: f, type, model, fieldTypePlugins })\n : renderInputField({ field: f, model, fieldTypePlugins });\n\n if (!result) {\n continue;\n }\n\n const { fields, typeDefs } = result;\n\n typeFields.push(fields.replace(replace, `${fieldTypeName}_`));\n if (typeDefs) {\n nestedTypes.push(typeDefs.replace(replace, `${fieldTypeName}_`));\n }\n }\n\n return {\n fieldType: `${fieldTypeName}${typeSuffix}`,\n typeDefs: /* GraphQL */ `\n ${nestedTypes.join(\"\\n\")}\n \n ${typeOfType} ${fieldTypeName}${typeSuffix} {\n ${typeFields.join(\"\\n\")}\n }\n `\n };\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 read: {\n createTypeField({ field, model, fieldTypePlugins }) {\n const result = typeFromField({\n typeOfType: \"type\",\n model,\n type: \"read\",\n field,\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs\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 },\n manage: {\n createTypeField({ model, field, fieldTypePlugins }) {\n const result = typeFromField({\n typeOfType: \"type\",\n model,\n type: \"manage\",\n field,\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs\n };\n },\n createInputField({ model, field, fieldTypePlugins }) {\n const result = typeFromField({\n typeOfType: \"input\",\n model,\n type: \"manage\",\n field,\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 }\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","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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"}
|
package/graphqlFields/ref.js
CHANGED
|
@@ -10,7 +10,7 @@ var _createTypeName = require("../utils/createTypeName");
|
|
|
10
10
|
var _utils = require("@webiny/utils");
|
|
11
11
|
var _helpers = require("./helpers");
|
|
12
12
|
const createUnionTypeName = (model, field) => {
|
|
13
|
-
return `${(0, _createTypeName.createReadTypeName)(model.modelId)}${(0, _createTypeName.createReadTypeName)(field.fieldId)}`;
|
|
13
|
+
return `${(0, _createTypeName.createReadTypeName)(model.modelId)}_${(0, _createTypeName.createReadTypeName)(field.fieldId)}`;
|
|
14
14
|
};
|
|
15
15
|
const createListFilters = ({
|
|
16
16
|
field
|
|
@@ -66,7 +66,13 @@ const createRefField = () => {
|
|
|
66
66
|
var _field$settings;
|
|
67
67
|
const models = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.models) || [];
|
|
68
68
|
const gqlType = models.length > 1 ? createUnionTypeName(model, field) : (0, _createTypeName.createReadTypeName)(models[0].modelId);
|
|
69
|
-
|
|
69
|
+
const typeDefs = models.length > 1 ? `union ${gqlType} = ${getFieldModels(field).map(({
|
|
70
|
+
modelId
|
|
71
|
+
}) => (0, _createTypeName.createReadTypeName)(modelId)).join(" | ")}` : "";
|
|
72
|
+
return {
|
|
73
|
+
fields: field.fieldId + `(populate: Boolean = true): ${field.multipleValues ? `[${gqlType}!]` : gqlType}`,
|
|
74
|
+
typeDefs
|
|
75
|
+
};
|
|
70
76
|
},
|
|
71
77
|
/**
|
|
72
78
|
* TS is complaining about mixed types for createResolver.
|
|
@@ -83,7 +89,7 @@ const createRefField = () => {
|
|
|
83
89
|
for (const item of models) {
|
|
84
90
|
modelIdToTypeName.set(item.modelId, (0, _createTypeName.createReadTypeName)(item.modelId));
|
|
85
91
|
}
|
|
86
|
-
return async (parent,
|
|
92
|
+
return async (parent, args, context) => {
|
|
87
93
|
const {
|
|
88
94
|
cms
|
|
89
95
|
} = context;
|
|
@@ -93,6 +99,9 @@ const createRefField = () => {
|
|
|
93
99
|
if (!initialValue) {
|
|
94
100
|
return null;
|
|
95
101
|
}
|
|
102
|
+
if (args.populate === false) {
|
|
103
|
+
return initialValue;
|
|
104
|
+
}
|
|
96
105
|
if (field.multipleValues) {
|
|
97
106
|
/**
|
|
98
107
|
* We cast because value really can be array and single value.
|
|
@@ -153,34 +162,9 @@ const createRefField = () => {
|
|
|
153
162
|
});
|
|
154
163
|
};
|
|
155
164
|
},
|
|
156
|
-
createSchema({
|
|
157
|
-
models
|
|
158
|
-
}) {
|
|
159
|
-
const unionFields = [];
|
|
160
|
-
for (const model of models) {
|
|
161
|
-
// Generate a dedicated union type for every `ref` field which has more than 1 content model assigned.
|
|
162
|
-
model.fields.filter(field => {
|
|
163
|
-
var _field$settings3;
|
|
164
|
-
return field.type === "ref" && (((_field$settings3 = field.settings) === null || _field$settings3 === void 0 ? void 0 : _field$settings3.models) || []).length > 1;
|
|
165
|
-
}).forEach(field => unionFields.push({
|
|
166
|
-
model,
|
|
167
|
-
field,
|
|
168
|
-
typeName: createUnionTypeName(model, field)
|
|
169
|
-
}));
|
|
170
|
-
}
|
|
171
|
-
const unionFieldsTypeDef = unionFields.map(({
|
|
172
|
-
field,
|
|
173
|
-
typeName
|
|
174
|
-
}) => `union ${typeName} = ${getFieldModels(field).map(({
|
|
175
|
-
modelId
|
|
176
|
-
}) => (0, _createTypeName.createReadTypeName)(modelId)).join(" | ")}`).join("\n");
|
|
177
|
-
const filteringTypeDef = `
|
|
178
|
-
${createFilteringTypeDef()}
|
|
179
|
-
|
|
180
|
-
${unionFieldsTypeDef}
|
|
181
|
-
`;
|
|
165
|
+
createSchema() {
|
|
182
166
|
return {
|
|
183
|
-
typeDefs:
|
|
167
|
+
typeDefs: createFilteringTypeDef(),
|
|
184
168
|
resolvers: {}
|
|
185
169
|
};
|
|
186
170
|
},
|
|
@@ -189,23 +173,25 @@ const createRefField = () => {
|
|
|
189
173
|
manage: {
|
|
190
174
|
createSchema() {
|
|
191
175
|
/**
|
|
192
|
-
* entryId in RefFieldInput is deprecated but cannot mark it as
|
|
176
|
+
* `entryId` in `RefFieldInput` is deprecated, but we cannot mark it as such in GraphQL.
|
|
177
|
+
* `entryId` is extracted at runtime from the `id` which contains both the `entryId` and revision number.
|
|
178
|
+
* See: `packages/api-headless-cms/src/crud/contentEntry/referenceFieldsMapping.ts`
|
|
193
179
|
*/
|
|
194
180
|
return {
|
|
195
|
-
typeDefs:
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
181
|
+
typeDefs: /* GraphQL */`
|
|
182
|
+
type RefField {
|
|
183
|
+
modelId: String!
|
|
184
|
+
entryId: ID!
|
|
185
|
+
id: ID!
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
input RefFieldInput {
|
|
189
|
+
modelId: String!
|
|
190
|
+
id: ID!
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
${createFilteringTypeDef()}
|
|
194
|
+
`,
|
|
209
195
|
resolvers: {
|
|
210
196
|
RefField: {
|
|
211
197
|
entryId: parent => {
|