@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.
Files changed (326) hide show
  1. package/context.js +0 -25
  2. package/context.js.map +1 -1
  3. package/crud/contentEntry/afterDelete.js +0 -5
  4. package/crud/contentEntry/afterDelete.js.map +1 -1
  5. package/crud/contentEntry/beforeCreate.js +0 -3
  6. package/crud/contentEntry/beforeCreate.js.map +1 -1
  7. package/crud/contentEntry/beforeUpdate.js +0 -3
  8. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  9. package/crud/contentEntry/entryDataValidation.js +1 -40
  10. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  11. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  12. package/crud/contentEntry/markLockedFields.js +15 -28
  13. package/crud/contentEntry/markLockedFields.js.map +1 -1
  14. package/crud/contentEntry/referenceFieldsMapping.js +5 -61
  15. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  16. package/crud/contentEntry/searchableFields.js +1 -12
  17. package/crud/contentEntry/searchableFields.js.map +1 -1
  18. package/crud/contentEntry.crud.d.ts +2 -1
  19. package/crud/contentEntry.crud.js +59 -166
  20. package/crud/contentEntry.crud.js.map +1 -1
  21. package/crud/contentModel/afterCreate.js +0 -2
  22. package/crud/contentModel/afterCreate.js.map +1 -1
  23. package/crud/contentModel/afterCreateFrom.js +0 -2
  24. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  25. package/crud/contentModel/afterDelete.js +0 -2
  26. package/crud/contentModel/afterDelete.js.map +1 -1
  27. package/crud/contentModel/afterUpdate.js +0 -2
  28. package/crud/contentModel/afterUpdate.js.map +1 -1
  29. package/crud/contentModel/beforeCreate.js +7 -32
  30. package/crud/contentModel/beforeCreate.js.map +1 -1
  31. package/crud/contentModel/beforeDelete.js +0 -10
  32. package/crud/contentModel/beforeDelete.js.map +1 -1
  33. package/crud/contentModel/beforeUpdate.js +4 -5
  34. package/crud/contentModel/beforeUpdate.js.map +1 -1
  35. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  36. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  37. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  38. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  39. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  40. package/crud/contentModel/createFieldStorageId.js +0 -3
  41. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  42. package/crud/contentModel/defaultFields.d.ts +5 -0
  43. package/crud/contentModel/defaultFields.js +58 -0
  44. package/crud/contentModel/defaultFields.js.map +1 -0
  45. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  46. package/crud/contentModel/fields/descriptionField.js +42 -0
  47. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  48. package/crud/contentModel/fields/imageField.d.ts +2 -0
  49. package/crud/contentModel/fields/imageField.js +46 -0
  50. package/crud/contentModel/fields/imageField.js.map +1 -0
  51. package/crud/contentModel/fields/titleField.d.ts +2 -0
  52. package/crud/contentModel/fields/titleField.js +58 -0
  53. package/crud/contentModel/fields/titleField.js.map +1 -0
  54. package/crud/contentModel/validateLayout.js +0 -8
  55. package/crud/contentModel/validateLayout.js.map +1 -1
  56. package/crud/contentModel/validateModel.d.ts +1 -0
  57. package/crud/contentModel/validateModel.js +0 -8
  58. package/crud/contentModel/validateModel.js.map +1 -1
  59. package/crud/contentModel/validateModelFields.d.ts +2 -1
  60. package/crud/contentModel/validateModelFields.js +35 -128
  61. package/crud/contentModel/validateModelFields.js.map +1 -1
  62. package/crud/contentModel/validation.d.ts +85 -43
  63. package/crud/contentModel/validation.js +57 -21
  64. package/crud/contentModel/validation.js.map +1 -1
  65. package/crud/contentModel.crud.js +46 -110
  66. package/crud/contentModel.crud.js.map +1 -1
  67. package/crud/contentModelGroup/beforeCreate.js +0 -12
  68. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  69. package/crud/contentModelGroup/beforeDelete.js +0 -8
  70. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  71. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  72. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  73. package/crud/contentModelGroup/validation.js +0 -9
  74. package/crud/contentModelGroup/validation.js.map +1 -1
  75. package/crud/contentModelGroup.crud.js +5 -47
  76. package/crud/contentModelGroup.crud.js.map +1 -1
  77. package/crud/settings.crud.js +0 -12
  78. package/crud/settings.crud.js.map +1 -1
  79. package/crud/system.crud.js +1 -96
  80. package/crud/system.crud.js.map +1 -1
  81. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  82. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  83. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
  84. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  85. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  86. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  87. package/fieldConverters/index.js +0 -5
  88. package/fieldConverters/index.js.map +1 -1
  89. package/graphql/buildSchemaPlugins.js +4 -9
  90. package/graphql/buildSchemaPlugins.js.map +1 -1
  91. package/graphql/createExecutableSchema.js +2 -6
  92. package/graphql/createExecutableSchema.js.map +1 -1
  93. package/graphql/generateSchema.js +0 -7
  94. package/graphql/generateSchema.js.map +1 -1
  95. package/graphql/graphQLHandlerFactory.js +16 -39
  96. package/graphql/graphQLHandlerFactory.js.map +1 -1
  97. package/graphql/index.js +0 -5
  98. package/graphql/index.js.map +1 -1
  99. package/graphql/schema/baseContentSchema.js +5 -17
  100. package/graphql/schema/baseContentSchema.js.map +1 -1
  101. package/graphql/schema/baseSchema.js +1 -8
  102. package/graphql/schema/baseSchema.js.map +1 -1
  103. package/graphql/schema/contentEntries.js +107 -102
  104. package/graphql/schema/contentEntries.js.map +1 -1
  105. package/graphql/schema/contentModelGroups.js +3 -20
  106. package/graphql/schema/contentModelGroups.js.map +1 -1
  107. package/graphql/schema/contentModels.js +22 -25
  108. package/graphql/schema/contentModels.js.map +1 -1
  109. package/graphql/schema/createFieldResolvers.js +5 -28
  110. package/graphql/schema/createFieldResolvers.js.map +1 -1
  111. package/graphql/schema/createManageResolvers.d.ts +1 -1
  112. package/graphql/schema/createManageResolvers.js +33 -43
  113. package/graphql/schema/createManageResolvers.js.map +1 -1
  114. package/graphql/schema/createManageSDL.d.ts +1 -0
  115. package/graphql/schema/createManageSDL.js +57 -63
  116. package/graphql/schema/createManageSDL.js.map +1 -1
  117. package/graphql/schema/createPreviewResolvers.js +3 -17
  118. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  119. package/graphql/schema/createReadResolvers.js +4 -18
  120. package/graphql/schema/createReadResolvers.js.map +1 -1
  121. package/graphql/schema/createReadSDL.d.ts +1 -0
  122. package/graphql/schema/createReadSDL.js +24 -32
  123. package/graphql/schema/createReadSDL.js.map +1 -1
  124. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  125. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  126. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  127. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  128. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  129. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  130. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  131. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  132. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  133. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  134. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  135. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  136. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  137. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  138. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  139. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  140. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  141. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  142. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  143. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  144. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  145. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  146. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  147. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  148. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  149. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  150. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  151. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  152. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  153. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  154. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  155. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  156. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  157. package/graphql/schema/schemaPlugins.js +16 -26
  158. package/graphql/schema/schemaPlugins.js.map +1 -1
  159. package/graphql/system.js +1 -30
  160. package/graphql/system.js.map +1 -1
  161. package/graphqlFields/boolean.js +0 -12
  162. package/graphqlFields/boolean.js.map +1 -1
  163. package/graphqlFields/datetime.js +0 -17
  164. package/graphqlFields/datetime.js.map +1 -1
  165. package/graphqlFields/dynamicZone/dynamicZoneField.js +15 -33
  166. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  167. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
  168. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  169. package/graphqlFields/dynamicZone/index.js +0 -2
  170. package/graphqlFields/dynamicZone/index.js.map +1 -1
  171. package/graphqlFields/file.js +0 -8
  172. package/graphqlFields/file.js.map +1 -1
  173. package/graphqlFields/helpers.js +0 -10
  174. package/graphqlFields/helpers.js.map +1 -1
  175. package/graphqlFields/index.js +0 -12
  176. package/graphqlFields/index.js.map +1 -1
  177. package/graphqlFields/longText.js +0 -10
  178. package/graphqlFields/longText.js.map +1 -1
  179. package/graphqlFields/number.js +0 -12
  180. package/graphqlFields/number.js.map +1 -1
  181. package/graphqlFields/object.js +7 -37
  182. package/graphqlFields/object.js.map +1 -1
  183. package/graphqlFields/ref.js +59 -65
  184. package/graphqlFields/ref.js.map +1 -1
  185. package/graphqlFields/richText.js +0 -9
  186. package/graphqlFields/richText.js.map +1 -1
  187. package/graphqlFields/text.js +0 -11
  188. package/graphqlFields/text.js.map +1 -1
  189. package/index.d.ts +1 -1
  190. package/index.js +1 -21
  191. package/index.js.map +1 -1
  192. package/modelManager/DefaultCmsModelManager.js +0 -16
  193. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  194. package/modelManager/index.js +0 -4
  195. package/modelManager/index.js.map +1 -1
  196. package/package.json +24 -25
  197. package/parameters/context.js +0 -4
  198. package/parameters/context.js.map +1 -1
  199. package/parameters/header.js +0 -11
  200. package/parameters/header.js.map +1 -1
  201. package/parameters/index.js +0 -8
  202. package/parameters/index.js.map +1 -1
  203. package/parameters/manual.js +1 -8
  204. package/parameters/manual.js.map +1 -1
  205. package/parameters/path.js +0 -11
  206. package/parameters/path.js.map +1 -1
  207. package/plugins/CmsGraphQLSchemaPlugin.js +0 -5
  208. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  209. package/plugins/CmsGraphQLSchemaSorterPlugin.js +0 -10
  210. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  211. package/plugins/CmsGroupPlugin.js +0 -8
  212. package/plugins/CmsGroupPlugin.js.map +1 -1
  213. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  214. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  215. package/plugins/CmsModelPlugin.d.ts +11 -1
  216. package/plugins/CmsModelPlugin.js +15 -40
  217. package/plugins/CmsModelPlugin.js.map +1 -1
  218. package/plugins/CmsParametersPlugin.js +0 -7
  219. package/plugins/CmsParametersPlugin.js.map +1 -1
  220. package/plugins/StorageTransformPlugin.js +0 -9
  221. package/plugins/StorageTransformPlugin.js.map +1 -1
  222. package/plugins/index.js +0 -14
  223. package/plugins/index.js.map +1 -1
  224. package/storage/default.js +0 -3
  225. package/storage/default.js.map +1 -1
  226. package/storage/object.js +0 -19
  227. package/storage/object.js.map +1 -1
  228. package/types.d.ts +77 -22
  229. package/types.js +1 -80
  230. package/types.js.map +1 -1
  231. package/utils/access.js +11 -25
  232. package/utils/access.js.map +1 -1
  233. package/utils/converters/Converter.js +0 -13
  234. package/utils/converters/Converter.js.map +1 -1
  235. package/utils/converters/ConverterCollection.js +9 -33
  236. package/utils/converters/ConverterCollection.js.map +1 -1
  237. package/utils/converters/valueKeyStorageConverter.js +2 -27
  238. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  239. package/utils/createTypeFromFields.d.ts +1 -0
  240. package/utils/createTypeFromFields.js +11 -19
  241. package/utils/createTypeFromFields.js.map +1 -1
  242. package/utils/createTypeName.js +0 -9
  243. package/utils/createTypeName.js.map +1 -1
  244. package/utils/entryStorage.js +10 -26
  245. package/utils/entryStorage.js.map +1 -1
  246. package/utils/filterAsync.js +0 -5
  247. package/utils/filterAsync.js.map +1 -1
  248. package/utils/getBaseFieldType.js +0 -2
  249. package/utils/getBaseFieldType.js.map +1 -1
  250. package/utils/getEntryDescription.d.ts +2 -0
  251. package/utils/getEntryDescription.js +17 -0
  252. package/utils/getEntryDescription.js.map +1 -0
  253. package/utils/getEntryImage.d.ts +2 -0
  254. package/utils/getEntryImage.js +17 -0
  255. package/utils/getEntryImage.js.map +1 -0
  256. package/utils/getEntryTitle.js +0 -9
  257. package/utils/getEntryTitle.js.map +1 -1
  258. package/utils/getSchemaFromFieldPlugins.js +2 -11
  259. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  260. package/utils/ownership.d.ts +3 -3
  261. package/utils/ownership.js +0 -8
  262. package/utils/ownership.js.map +1 -1
  263. package/utils/permissions.js +8 -23
  264. package/utils/permissions.js.map +1 -1
  265. package/utils/removeNullValues.d.ts +1 -0
  266. package/utils/removeNullValues.js +17 -0
  267. package/utils/removeNullValues.js.map +1 -0
  268. package/utils/removeUndefinedValues.d.ts +1 -0
  269. package/utils/removeUndefinedValues.js +17 -0
  270. package/utils/removeUndefinedValues.js.map +1 -0
  271. package/utils/renderFields.d.ts +2 -1
  272. package/utils/renderFields.js +8 -10
  273. package/utils/renderFields.js.map +1 -1
  274. package/utils/renderGetFilterFields.js +0 -13
  275. package/utils/renderGetFilterFields.js.map +1 -1
  276. package/utils/renderInputFields.d.ts +2 -1
  277. package/utils/renderInputFields.js +4 -9
  278. package/utils/renderInputFields.js.map +1 -1
  279. package/utils/renderListFilterFields.js +1 -10
  280. package/utils/renderListFilterFields.js.map +1 -1
  281. package/utils/renderSortEnum.js +0 -9
  282. package/utils/renderSortEnum.js.map +1 -1
  283. package/utils/toSlug.js +0 -4
  284. package/utils/toSlug.js.map +1 -1
  285. package/validators/dateGte.js +0 -7
  286. package/validators/dateGte.js.map +1 -1
  287. package/validators/dateLte.js +0 -7
  288. package/validators/dateLte.js.map +1 -1
  289. package/validators/dynamicZone.js +0 -4
  290. package/validators/dynamicZone.js.map +1 -1
  291. package/validators/gte.js +0 -8
  292. package/validators/gte.js.map +1 -1
  293. package/validators/in.js +0 -8
  294. package/validators/in.js.map +1 -1
  295. package/validators/index.js +0 -16
  296. package/validators/index.js.map +1 -1
  297. package/validators/lte.js +0 -8
  298. package/validators/lte.js.map +1 -1
  299. package/validators/maxLength.js +0 -8
  300. package/validators/maxLength.js.map +1 -1
  301. package/validators/minLength.js +0 -8
  302. package/validators/minLength.js.map +1 -1
  303. package/validators/pattern.js +0 -9
  304. package/validators/pattern.js.map +1 -1
  305. package/validators/patternPlugins/email.js +0 -2
  306. package/validators/patternPlugins/email.js.map +1 -1
  307. package/validators/patternPlugins/index.js +0 -8
  308. package/validators/patternPlugins/index.js.map +1 -1
  309. package/validators/patternPlugins/lowerCase.js +0 -2
  310. package/validators/patternPlugins/lowerCase.js.map +1 -1
  311. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  312. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  313. package/validators/patternPlugins/upperCase.js +0 -2
  314. package/validators/patternPlugins/upperCase.js.map +1 -1
  315. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  316. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  317. package/validators/patternPlugins/url.js +0 -2
  318. package/validators/patternPlugins/url.js.map +1 -1
  319. package/validators/required.js +0 -5
  320. package/validators/required.js.map +1 -1
  321. package/validators/timeGte.js +0 -8
  322. package/validators/timeGte.js.map +1 -1
  323. package/validators/timeLte.js +0 -8
  324. package/validators/timeLte.js.map +1 -1
  325. package/validators/unique.js +0 -7
  326. package/validators/unique.js.map +1 -1
@@ -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":";;;;;;;AACA;;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAAF,CAAD,KAAwC;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,KAbI;AAcH,CAfD;;AAiBO,MAAMC,iBAAiB,GAAG,MAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,mCADH;IAEHC,IAAI,EAAE,4BAFH;IAGHC,SAAS,EAAE,QAHR;IAIHC,UAAU,EAAE,IAJT;IAKHC,YAAY,EAAE,IALX;IAMHC,IAAI,EAAE;MACFC,gBAAgB,CAAC;QAAET;MAAF,CAAD,EAAY;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAxB;MACH,CAHC;;MAIFF,iBAJE;;MAKFW,eAAe,CAAC;QAAEV;MAAF,CAAD,EAAY;QACvB,IAAIA,KAAK,CAACW,cAAV,EAA0B;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAxB;QACH;;QAED,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAxB;MACH;;IAXC,CANH;IAmBHW,MAAM,EAAE;MACJb,iBADI;;MAEJW,eAAe,CAAC;QAAEV;MAAF,CAAD,EAAY;QACvB,IAAIA,KAAK,CAACW,cAAV,EAA0B;UACtB,OAAOX,KAAK,CAACC,OAAN,GAAgB,YAAvB;QACH;;QAED,OAAOD,KAAK,CAACC,OAAN,GAAgB,UAAvB;MACH,CARG;;MASJY,gBAAgB,CAAC;QAAEb;MAAF,CAAD,EAAY;QACxB,OAAO,IAAAc,gCAAA,EAAwBd,KAAxB,EAA+B,QAA/B,CAAP;MACH;;IAXG;EAnBL,CAAP;AAiCH,CAlCM"}
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"}
@@ -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.modelId].concat(parents).concat([field.fieldId]).filter(Boolean).map(id => {
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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"}
@@ -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 `${(0, _createTypeName.createReadTypeName)(model.modelId)}_${(0, _createTypeName.createReadTypeName)(field.fieldId)}`;
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 models = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.models) || [];
83
- const gqlType = models.length > 1 ? createUnionTypeName(model, field) : (0, _createTypeName.createReadTypeName)(models[0].modelId);
84
- const typeDefs = models.length > 1 ? `union ${gqlType} = ${getFieldModels(field).map(({
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)(modelId)).join(" | ")}` : "";
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(params) {
107
+ createResolver({
108
+ field,
109
+ models
110
+ }) {
99
111
  var _field$settings2;
100
-
101
- const {
102
- field
103
- } = params; // Create a map of model types and corresponding modelIds so resolvers don't need to perform the lookup.
104
-
105
- const models = ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.models) || [];
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; // Get field value for this entry
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]; // Get model manager, to get access to CRUD methods
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; // `read` API works with `published` data
152
-
155
+ let entries;
156
+ // `read` API works with `published` data
153
157
  if (cms.READ) {
154
158
  entries = await model.getPublishedByIds(idList);
155
- } // `preview` and `manage` with `latest` data
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
- const value = initialValue; // Get model manager, to get access to CRUD methods
166
-
167
- const model = await cms.getModelManager(value.modelId);
168
- let revisions; // `read` API works with `published` data
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
- } // `preview` API works with `latest` data
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;