@webiny/app-headless-cms-common 5.43.2 → 6.0.0-alpha.0

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 (52) hide show
  1. package/Fields/ErrorBoundary.js +32 -52
  2. package/Fields/ErrorBoundary.js.map +1 -1
  3. package/Fields/FieldElement.js +43 -52
  4. package/Fields/FieldElement.js.map +1 -1
  5. package/Fields/FieldElementError.js +6 -13
  6. package/Fields/FieldElementError.js.map +1 -1
  7. package/Fields/Fields.js +29 -39
  8. package/Fields/Fields.js.map +1 -1
  9. package/Fields/Label.js +7 -31
  10. package/Fields/Label.js.map +1 -1
  11. package/Fields/index.js +3 -38
  12. package/Fields/index.js.map +1 -1
  13. package/Fields/useBind.js +59 -64
  14. package/Fields/useBind.js.map +1 -1
  15. package/Fields/useRenderPlugins.js +4 -12
  16. package/Fields/useRenderPlugins.js.map +1 -1
  17. package/ModelFieldProvider/ModelFieldContext.d.ts +1 -1
  18. package/ModelFieldProvider/ModelFieldContext.js +16 -21
  19. package/ModelFieldProvider/ModelFieldContext.js.map +1 -1
  20. package/ModelFieldProvider/index.js +2 -27
  21. package/ModelFieldProvider/index.js.map +1 -1
  22. package/ModelFieldProvider/useModelField.js +15 -23
  23. package/ModelFieldProvider/useModelField.js.map +1 -1
  24. package/ModelProvider/ModelContext.js +7 -13
  25. package/ModelProvider/ModelContext.js.map +1 -1
  26. package/ModelProvider/index.js +2 -27
  27. package/ModelProvider/index.js.map +1 -1
  28. package/ModelProvider/useModel.js +6 -12
  29. package/ModelProvider/useModel.js.map +1 -1
  30. package/constants.js +1 -7
  31. package/constants.js.map +1 -1
  32. package/createFieldsList.js +23 -26
  33. package/createFieldsList.js.map +1 -1
  34. package/createValidationContainer.js +11 -16
  35. package/createValidationContainer.js.map +1 -1
  36. package/createValidators.js +18 -28
  37. package/createValidators.js.map +1 -1
  38. package/entries.graphql.js +292 -70
  39. package/entries.graphql.js.map +1 -1
  40. package/getModelTitleFieldId.js +1 -7
  41. package/getModelTitleFieldId.js.map +1 -1
  42. package/index.js +10 -115
  43. package/index.js.map +1 -1
  44. package/package.json +12 -13
  45. package/prepareFormData.js +22 -41
  46. package/prepareFormData.js.map +1 -1
  47. package/types/index.d.ts +7 -1
  48. package/types/index.js +54 -38
  49. package/types/index.js.map +1 -1
  50. package/types/model.js +1 -5
  51. package/types/shared.js +1 -5
  52. package/types/validation.js +1 -5
@@ -1,32 +1,29 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createFieldsList = createFieldsList;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
- var _plugins = require("@webiny/plugins");
11
- function createFieldsList(_ref) {
12
- var model = _ref.model,
13
- inputFields = _ref.fields,
14
- graphQLTypePrefix = _ref.graphQLTypePrefix;
15
- var fieldPlugins = _plugins.plugins.byType("cms-editor-field-type").reduce(function (acc, item) {
16
- return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, acc), {}, (0, _defineProperty2.default)({}, item.field.type, item.field));
17
- }, {});
18
- var typePrefix = graphQLTypePrefix ?? model.singularApiName;
19
- var fields = inputFields.map(function (field) {
1
+ import { plugins } from "@webiny/plugins";
2
+ export function createFieldsList({
3
+ model,
4
+ fields: inputFields,
5
+ graphQLTypePrefix
6
+ }) {
7
+ const fieldPlugins = plugins.byType("cms-editor-field-type").reduce((acc, item) => ({
8
+ ...acc,
9
+ [item.field.type]: item.field
10
+ }), {});
11
+ const typePrefix = graphQLTypePrefix ?? model.singularApiName;
12
+ const fields = inputFields.map(field => {
20
13
  if (!fieldPlugins[field.type]) {
21
- console.log("Unknown field plugin for field type \"".concat(field.type, "\"."));
14
+ console.log(`Unknown field plugin for field type "${field.type}".`);
22
15
  return null;
23
16
  }
24
- var graphql = fieldPlugins[field.type].graphql;
17
+ const {
18
+ graphql
19
+ } = fieldPlugins[field.type];
25
20
  if (graphql && graphql.queryField) {
26
- var queryField = graphql.queryField;
27
- var selection = typeof queryField === "string" ? queryField : queryField({
28
- model: model,
29
- field: field,
21
+ const {
22
+ queryField
23
+ } = graphql;
24
+ const selection = typeof queryField === "string" ? queryField : queryField({
25
+ model,
26
+ field,
30
27
  graphQLTypePrefix: typePrefix
31
28
  });
32
29
 
@@ -36,7 +33,7 @@ function createFieldsList(_ref) {
36
33
  if (selection === null) {
37
34
  return null;
38
35
  }
39
- return "".concat(field.fieldId, " ").concat(selection);
36
+ return `${field.fieldId} ${selection}`;
40
37
  }
41
38
  return field.fieldId;
42
39
  }).filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"names":["_plugins","require","createFieldsList","_ref","model","inputFields","fields","graphQLTypePrefix","fieldPlugins","plugins","byType","reduce","acc","item","_objectSpread3","default","_defineProperty2","field","type","typePrefix","singularApiName","map","console","log","concat","graphql","queryField","selection","fieldId","filter","Boolean","length","push","join"],"sources":["createFieldsList.ts"],"sourcesContent":["import { CmsModel, CmsModelField, CmsModelFieldTypePlugin } from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\n\ninterface CreateFieldsListParams {\n model: CmsModel;\n fields: CmsModelField[];\n graphQLTypePrefix?: string;\n}\n\nexport function createFieldsList({\n model,\n fields: inputFields,\n graphQLTypePrefix\n}: CreateFieldsListParams): string {\n const fieldPlugins: Record<string, CmsModelFieldTypePlugin[\"field\"]> = plugins\n .byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\")\n .reduce((acc, item) => ({ ...acc, [item.field.type]: item.field }), {});\n\n const typePrefix = graphQLTypePrefix ?? model.singularApiName;\n\n const fields = inputFields\n .map(field => {\n if (!fieldPlugins[field.type]) {\n console.log(`Unknown field plugin for field type \"${field.type}\".`);\n return null;\n }\n const { graphql } = fieldPlugins[field.type];\n\n if (graphql && graphql.queryField) {\n const { queryField } = graphql;\n const selection =\n typeof queryField === \"string\"\n ? queryField\n : queryField({ model, field, graphQLTypePrefix: typePrefix });\n\n /**\n * If field type plugin returns `null`, we don't include the field in the selection.\n */\n if (selection === null) {\n return null;\n }\n\n return `${field.fieldId} ${selection}`;\n }\n\n return field.fieldId;\n })\n .filter(Boolean);\n /**\n * If there are no fields, let's always load the `_empty` field.\n */\n if (fields.length === 0) {\n fields.push(\"_empty\");\n }\n return fields.join(\"\\n\");\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAQO,SAASC,gBAAgBA,CAAAC,IAAA,EAIG;EAAA,IAH/BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACGC,WAAW,GAAAF,IAAA,CAAnBG,MAAM;IACNC,iBAAiB,GAAAJ,IAAA,CAAjBI,iBAAiB;EAEjB,IAAMC,YAA8D,GAAGC,gBAAO,CACzEC,MAAM,CAA0B,uBAAuB,CAAC,CACxDC,MAAM,CAAC,UAACC,GAAG,EAAEC,IAAI;IAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAWH,GAAG,WAAAI,gBAAA,CAAAD,OAAA,MAAGF,IAAI,CAACI,KAAK,CAACC,IAAI,EAAGL,IAAI,CAACI,KAAK;EAAA,CAAG,EAAE,CAAC,CAAC,CAAC;EAE3E,IAAME,UAAU,GAAGZ,iBAAiB,IAAIH,KAAK,CAACgB,eAAe;EAE7D,IAAMd,MAAM,GAAGD,WAAW,CACrBgB,GAAG,CAAC,UAAAJ,KAAK,EAAI;IACV,IAAI,CAACT,YAAY,CAACS,KAAK,CAACC,IAAI,CAAC,EAAE;MAC3BI,OAAO,CAACC,GAAG,0CAAAC,MAAA,CAAyCP,KAAK,CAACC,IAAI,QAAI,CAAC;MACnE,OAAO,IAAI;IACf;IACA,IAAQO,OAAO,GAAKjB,YAAY,CAACS,KAAK,CAACC,IAAI,CAAC,CAApCO,OAAO;IAEf,IAAIA,OAAO,IAAIA,OAAO,CAACC,UAAU,EAAE;MAC/B,IAAQA,UAAU,GAAKD,OAAO,CAAtBC,UAAU;MAClB,IAAMC,SAAS,GACX,OAAOD,UAAU,KAAK,QAAQ,GACxBA,UAAU,GACVA,UAAU,CAAC;QAAEtB,KAAK,EAALA,KAAK;QAAEa,KAAK,EAALA,KAAK;QAAEV,iBAAiB,EAAEY;MAAW,CAAC,CAAC;;MAErE;AAChB;AACA;MACgB,IAAIQ,SAAS,KAAK,IAAI,EAAE;QACpB,OAAO,IAAI;MACf;MAEA,UAAAH,MAAA,CAAUP,KAAK,CAACW,OAAO,OAAAJ,MAAA,CAAIG,SAAS;IACxC;IAEA,OAAOV,KAAK,CAACW,OAAO;EACxB,CAAC,CAAC,CACDC,MAAM,CAACC,OAAO,CAAC;EACpB;AACJ;AACA;EACI,IAAIxB,MAAM,CAACyB,MAAM,KAAK,CAAC,EAAE;IACrBzB,MAAM,CAAC0B,IAAI,CAAC,QAAQ,CAAC;EACzB;EACA,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAI,CAAC;AAC5B","ignoreList":[]}
1
+ {"version":3,"names":["plugins","createFieldsList","model","fields","inputFields","graphQLTypePrefix","fieldPlugins","byType","reduce","acc","item","field","type","typePrefix","singularApiName","map","console","log","graphql","queryField","selection","fieldId","filter","Boolean","length","push","join"],"sources":["createFieldsList.ts"],"sourcesContent":["import { CmsModel, CmsModelField, CmsModelFieldTypePlugin } from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\n\ninterface CreateFieldsListParams {\n model: CmsModel;\n fields: CmsModelField[];\n graphQLTypePrefix?: string;\n}\n\nexport function createFieldsList({\n model,\n fields: inputFields,\n graphQLTypePrefix\n}: CreateFieldsListParams): string {\n const fieldPlugins: Record<string, CmsModelFieldTypePlugin[\"field\"]> = plugins\n .byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\")\n .reduce((acc, item) => ({ ...acc, [item.field.type]: item.field }), {});\n\n const typePrefix = graphQLTypePrefix ?? model.singularApiName;\n\n const fields = inputFields\n .map(field => {\n if (!fieldPlugins[field.type]) {\n console.log(`Unknown field plugin for field type \"${field.type}\".`);\n return null;\n }\n const { graphql } = fieldPlugins[field.type];\n\n if (graphql && graphql.queryField) {\n const { queryField } = graphql;\n const selection =\n typeof queryField === \"string\"\n ? queryField\n : queryField({ model, field, graphQLTypePrefix: typePrefix });\n\n /**\n * If field type plugin returns `null`, we don't include the field in the selection.\n */\n if (selection === null) {\n return null;\n }\n\n return `${field.fieldId} ${selection}`;\n }\n\n return field.fieldId;\n })\n .filter(Boolean);\n /**\n * If there are no fields, let's always load the `_empty` field.\n */\n if (fields.length === 0) {\n fields.push(\"_empty\");\n }\n return fields.join(\"\\n\");\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,iBAAiB;AAQzC,OAAO,SAASC,gBAAgBA,CAAC;EAC7BC,KAAK;EACLC,MAAM,EAAEC,WAAW;EACnBC;AACoB,CAAC,EAAU;EAC/B,MAAMC,YAA8D,GAAGN,OAAO,CACzEO,MAAM,CAA0B,uBAAuB,CAAC,CACxDC,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,MAAM;IAAE,GAAGD,GAAG;IAAE,CAACC,IAAI,CAACC,KAAK,CAACC,IAAI,GAAGF,IAAI,CAACC;EAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAE3E,MAAME,UAAU,GAAGR,iBAAiB,IAAIH,KAAK,CAACY,eAAe;EAE7D,MAAMX,MAAM,GAAGC,WAAW,CACrBW,GAAG,CAACJ,KAAK,IAAI;IACV,IAAI,CAACL,YAAY,CAACK,KAAK,CAACC,IAAI,CAAC,EAAE;MAC3BI,OAAO,CAACC,GAAG,CAAC,wCAAwCN,KAAK,CAACC,IAAI,IAAI,CAAC;MACnE,OAAO,IAAI;IACf;IACA,MAAM;MAAEM;IAAQ,CAAC,GAAGZ,YAAY,CAACK,KAAK,CAACC,IAAI,CAAC;IAE5C,IAAIM,OAAO,IAAIA,OAAO,CAACC,UAAU,EAAE;MAC/B,MAAM;QAAEA;MAAW,CAAC,GAAGD,OAAO;MAC9B,MAAME,SAAS,GACX,OAAOD,UAAU,KAAK,QAAQ,GACxBA,UAAU,GACVA,UAAU,CAAC;QAAEjB,KAAK;QAAES,KAAK;QAAEN,iBAAiB,EAAEQ;MAAW,CAAC,CAAC;;MAErE;AAChB;AACA;MACgB,IAAIO,SAAS,KAAK,IAAI,EAAE;QACpB,OAAO,IAAI;MACf;MAEA,OAAO,GAAGT,KAAK,CAACU,OAAO,IAAID,SAAS,EAAE;IAC1C;IAEA,OAAOT,KAAK,CAACU,OAAO;EACxB,CAAC,CAAC,CACDC,MAAM,CAACC,OAAO,CAAC;EACpB;AACJ;AACA;EACI,IAAIpB,MAAM,CAACqB,MAAM,KAAK,CAAC,EAAE;IACrBrB,MAAM,CAACsB,IAAI,CAAC,QAAQ,CAAC;EACzB;EACA,OAAOtB,MAAM,CAACuB,IAAI,CAAC,IAAI,CAAC;AAC5B","ignoreList":[]}
@@ -1,24 +1,19 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createValidationContainer = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _ModelFieldProvider = require("./ModelFieldProvider");
10
- var ValidationContainerStyles = {
1
+ import React from "react";
2
+ import { useModelField } from "./ModelFieldProvider";
3
+ const ValidationContainerStyles = {
11
4
  display: "inherit"
12
5
  };
13
- var createValidationContainer = exports.createValidationContainer = function createValidationContainer(path) {
14
- return function ValidationContainer(_ref) {
15
- var children = _ref.children;
16
- var _useModelField = (0, _ModelFieldProvider.useModelField)(),
17
- field = _useModelField.field;
6
+ export const createValidationContainer = path => {
7
+ return function ValidationContainer({
8
+ children
9
+ }) {
10
+ const {
11
+ field
12
+ } = useModelField();
18
13
  if (field.multipleValues === undefined) {
19
14
  field.multipleValues = false;
20
15
  }
21
- return /*#__PURE__*/_react.default.createElement("hcms-field-validation", {
16
+ return /*#__PURE__*/React.createElement("hcms-field-validation", {
22
17
  style: ValidationContainerStyles,
23
18
  "data-path": path,
24
19
  "data-field-type": field.type,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_ModelFieldProvider","ValidationContainerStyles","display","createValidationContainer","exports","path","ValidationContainer","_ref","children","_useModelField","useModelField","field","multipleValues","undefined","default","createElement","style","type","String","renderer","name"],"sources":["createValidationContainer.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModelField } from \"./ModelFieldProvider\";\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"hcms-field-validation\": {\n \"data-path\": string;\n \"data-field-type\": string;\n \"data-field-multiple-values\": string;\n \"data-field-renderer\": string;\n style: React.CSSProperties;\n children: React.ReactNode;\n };\n }\n }\n}\n\nconst ValidationContainerStyles = { display: \"inherit\" };\n\nexport const createValidationContainer = (path: string) => {\n return function ValidationContainer({ children }: { children: React.ReactNode }) {\n const { field } = useModelField();\n\n if (field.multipleValues === undefined) {\n field.multipleValues = false;\n }\n\n return (\n <hcms-field-validation\n style={ValidationContainerStyles}\n data-path={path}\n data-field-type={field.type}\n data-field-multiple-values={String(field.multipleValues)}\n data-field-renderer={String(field.renderer.name)}\n >\n {children}\n </hcms-field-validation>\n );\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AAkBA,IAAME,yBAAyB,GAAG;EAAEC,OAAO,EAAE;AAAU,CAAC;AAEjD,IAAMC,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,SAA5BA,yBAAyBA,CAAIE,IAAY,EAAK;EACvD,OAAO,SAASC,mBAAmBA,CAAAC,IAAA,EAA8C;IAAA,IAA3CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAC1C,IAAAC,cAAA,GAAkB,IAAAC,iCAAa,EAAC,CAAC;MAAzBC,KAAK,GAAAF,cAAA,CAALE,KAAK;IAEb,IAAIA,KAAK,CAACC,cAAc,KAAKC,SAAS,EAAE;MACpCF,KAAK,CAACC,cAAc,GAAG,KAAK;IAChC;IAEA,oBACIf,MAAA,CAAAiB,OAAA,CAAAC,aAAA;MACIC,KAAK,EAAEf,yBAA0B;MACjC,aAAWI,IAAK;MAChB,mBAAiBM,KAAK,CAACM,IAAK;MAC5B,8BAA4BC,MAAM,CAACP,KAAK,CAACC,cAAc,CAAE;MACzD,uBAAqBM,MAAM,CAACP,KAAK,CAACQ,QAAQ,CAACC,IAAI;IAAE,GAEhDZ,QACkB,CAAC;EAEhC,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useModelField","ValidationContainerStyles","display","createValidationContainer","path","ValidationContainer","children","field","multipleValues","undefined","createElement","style","type","String","renderer","name"],"sources":["createValidationContainer.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModelField } from \"./ModelFieldProvider\";\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"hcms-field-validation\": {\n \"data-path\": string;\n \"data-field-type\": string;\n \"data-field-multiple-values\": string;\n \"data-field-renderer\": string;\n style: React.CSSProperties;\n children: React.ReactNode;\n };\n }\n }\n}\n\nconst ValidationContainerStyles = { display: \"inherit\" };\n\nexport const createValidationContainer = (path: string) => {\n return function ValidationContainer({ children }: { children: React.ReactNode }) {\n const { field } = useModelField();\n\n if (field.multipleValues === undefined) {\n field.multipleValues = false;\n }\n\n return (\n <hcms-field-validation\n style={ValidationContainerStyles}\n data-path={path}\n data-field-type={field.type}\n data-field-multiple-values={String(field.multipleValues)}\n data-field-renderer={String(field.renderer.name)}\n >\n {children}\n </hcms-field-validation>\n );\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa;AAkBtB,MAAMC,yBAAyB,GAAG;EAAEC,OAAO,EAAE;AAAU,CAAC;AAExD,OAAO,MAAMC,yBAAyB,GAAIC,IAAY,IAAK;EACvD,OAAO,SAASC,mBAAmBA,CAAC;IAAEC;EAAwC,CAAC,EAAE;IAC7E,MAAM;MAAEC;IAAM,CAAC,GAAGP,aAAa,CAAC,CAAC;IAEjC,IAAIO,KAAK,CAACC,cAAc,KAAKC,SAAS,EAAE;MACpCF,KAAK,CAACC,cAAc,GAAG,KAAK;IAChC;IAEA,oBACIT,KAAA,CAAAW,aAAA;MACIC,KAAK,EAAEV,yBAA0B;MACjC,aAAWG,IAAK;MAChB,mBAAiBG,KAAK,CAACK,IAAK;MAC5B,8BAA4BC,MAAM,CAACN,KAAK,CAACC,cAAc,CAAE;MACzD,uBAAqBK,MAAM,CAACN,KAAK,CAACO,QAAQ,CAACC,IAAI;IAAE,GAEhDT,QACkB,CAAC;EAEhC,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,32 +1,22 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createValidators = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _plugins = require("@webiny/plugins");
10
- var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
11
- var createValidators = exports.createValidators = function createValidators(field, validation) {
12
- var validatorPlugins = _plugins.plugins.byType("cms-model-field-validator");
13
- return validation.reduce(function (collection, item) {
1
+ import { plugins } from "@webiny/plugins";
2
+ import camelCase from "lodash/camelCase";
3
+ export const createValidators = (field, validation) => {
4
+ const validatorPlugins = plugins.byType("cms-model-field-validator");
5
+ return validation.reduce((collection, item) => {
14
6
  if (typeof item === "function") {
15
- return [].concat((0, _toConsumableArray2.default)(collection), [item]);
7
+ return [...collection, item];
16
8
  }
17
- var validatorPlugin = validatorPlugins.find(function (plugin) {
18
- return plugin.validator.name === item.name;
19
- });
9
+ const validatorPlugin = validatorPlugins.find(plugin => plugin.validator.name === item.name);
20
10
  if (!validatorPlugin || typeof validatorPlugin.validator.validate !== "function") {
21
11
  return collection;
22
12
  }
23
- var validator = async function validator(value) {
24
- var isInvalid;
25
- var message = item.message;
13
+ const validator = async value => {
14
+ let isInvalid;
15
+ let message = item.message;
26
16
  try {
27
- var result = await validatorPlugin.validator.validate(value, {
17
+ const result = await validatorPlugin.validator.validate(value, {
28
18
  validator: item,
29
- field: field
19
+ field
30
20
  });
31
21
  isInvalid = result === false;
32
22
  } catch (e) {
@@ -36,14 +26,14 @@ var createValidators = exports.createValidators = function createValidators(fiel
36
26
  }
37
27
  }
38
28
  if (isInvalid) {
39
- var interpolated = message || "Invalid value.";
40
- var getVariableValues = validatorPlugin.validator.getVariableValues;
29
+ let interpolated = message || "Invalid value.";
30
+ const getVariableValues = validatorPlugin.validator.getVariableValues;
41
31
  if (typeof getVariableValues === "function") {
42
- var variables = getVariableValues({
32
+ const variables = getVariableValues({
43
33
  validator: item
44
34
  });
45
- Object.keys(variables).forEach(function (key) {
46
- var regex = new RegExp("{".concat(key, "}"), "g");
35
+ Object.keys(variables).forEach(key => {
36
+ const regex = new RegExp(`\{${key}\}`, "g");
47
37
  interpolated = interpolated.replace(regex, variables[key]);
48
38
  });
49
39
  }
@@ -53,7 +43,7 @@ var createValidators = exports.createValidators = function createValidators(fiel
53
43
  /**
54
44
  * We need to set the validator name because it will be used as the reference to skip, if necessary.
55
45
  */
56
- validator.validatorName = (0, _camelCase.default)(validatorPlugin.validator.name);
46
+ validator.validatorName = camelCase(validatorPlugin.validator.name);
57
47
  collection.push(validator);
58
48
  return collection;
59
49
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["_plugins","require","_camelCase","_interopRequireDefault","createValidators","exports","field","validation","validatorPlugins","plugins","byType","reduce","collection","item","concat","_toConsumableArray2","default","validatorPlugin","find","plugin","validator","name","validate","value","isInvalid","message","result","e","interpolated","getVariableValues","variables","Object","keys","forEach","key","regex","RegExp","replace","Error","validatorName","camelCase","push"],"sources":["createValidators.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsModelFieldValidator, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { Validator } from \"@webiny/validation/types\";\nimport camelCase from \"lodash/camelCase\";\n\nexport const createValidators = (\n field: CmsModelField,\n validation: (CmsModelFieldValidator | Validator)[]\n): Validator[] => {\n const validatorPlugins = plugins.byType<CmsModelFieldValidatorPlugin>(\n \"cms-model-field-validator\"\n );\n\n return validation.reduce<Validator[]>((collection, item) => {\n if (typeof item === \"function\") {\n return [...collection, item];\n }\n\n const validatorPlugin = validatorPlugins.find(\n plugin => plugin.validator.name === item.name\n );\n\n if (!validatorPlugin || typeof validatorPlugin.validator.validate !== \"function\") {\n return collection;\n }\n\n const validator = async (value: any | any[]) => {\n let isInvalid;\n let message = item.message;\n try {\n const result = await validatorPlugin.validator.validate(value, {\n validator: item,\n field\n });\n\n isInvalid = result === false;\n } catch (e) {\n isInvalid = true;\n if (e.message && !item.message) {\n message = e.message;\n }\n }\n\n if (isInvalid) {\n let interpolated = message || \"Invalid value.\";\n\n const getVariableValues = validatorPlugin.validator.getVariableValues;\n if (typeof getVariableValues === \"function\") {\n const variables = getVariableValues({ validator: item });\n\n Object.keys(variables).forEach(key => {\n const regex = new RegExp(`\\{${key}\\}`, \"g\");\n interpolated = interpolated.replace(regex, variables[key]);\n });\n }\n\n throw new Error(interpolated);\n }\n };\n /**\n * We need to set the validator name because it will be used as the reference to skip, if necessary.\n */\n validator.validatorName = camelCase(validatorPlugin.validator.name);\n\n collection.push(validator);\n return collection;\n }, [] as Validator[]);\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEO,IAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CACzBE,KAAoB,EACpBC,UAAkD,EACpC;EACd,IAAMC,gBAAgB,GAAGC,gBAAO,CAACC,MAAM,CACnC,2BACJ,CAAC;EAED,OAAOH,UAAU,CAACI,MAAM,CAAc,UAACC,UAAU,EAAEC,IAAI,EAAK;IACxD,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;MAC5B,UAAAC,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAAWJ,UAAU,IAAEC,IAAI;IAC/B;IAEA,IAAMI,eAAe,GAAGT,gBAAgB,CAACU,IAAI,CACzC,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAACC,SAAS,CAACC,IAAI,KAAKR,IAAI,CAACQ,IAAI;IAAA,CACjD,CAAC;IAED,IAAI,CAACJ,eAAe,IAAI,OAAOA,eAAe,CAACG,SAAS,CAACE,QAAQ,KAAK,UAAU,EAAE;MAC9E,OAAOV,UAAU;IACrB;IAEA,IAAMQ,SAAS,GAAG,eAAZA,SAASA,CAAUG,KAAkB,EAAK;MAC5C,IAAIC,SAAS;MACb,IAAIC,OAAO,GAAGZ,IAAI,CAACY,OAAO;MAC1B,IAAI;QACA,IAAMC,MAAM,GAAG,MAAMT,eAAe,CAACG,SAAS,CAACE,QAAQ,CAACC,KAAK,EAAE;UAC3DH,SAAS,EAAEP,IAAI;UACfP,KAAK,EAALA;QACJ,CAAC,CAAC;QAEFkB,SAAS,GAAGE,MAAM,KAAK,KAAK;MAChC,CAAC,CAAC,OAAOC,CAAC,EAAE;QACRH,SAAS,GAAG,IAAI;QAChB,IAAIG,CAAC,CAACF,OAAO,IAAI,CAACZ,IAAI,CAACY,OAAO,EAAE;UAC5BA,OAAO,GAAGE,CAAC,CAACF,OAAO;QACvB;MACJ;MAEA,IAAID,SAAS,EAAE;QACX,IAAII,YAAY,GAAGH,OAAO,IAAI,gBAAgB;QAE9C,IAAMI,iBAAiB,GAAGZ,eAAe,CAACG,SAAS,CAACS,iBAAiB;QACrE,IAAI,OAAOA,iBAAiB,KAAK,UAAU,EAAE;UACzC,IAAMC,SAAS,GAAGD,iBAAiB,CAAC;YAAET,SAAS,EAAEP;UAAK,CAAC,CAAC;UAExDkB,MAAM,CAACC,IAAI,CAACF,SAAS,CAAC,CAACG,OAAO,CAAC,UAAAC,GAAG,EAAI;YAClC,IAAMC,KAAK,GAAG,IAAIC,MAAM,KAAAtB,MAAA,CAAMoB,GAAG,QAAM,GAAG,CAAC;YAC3CN,YAAY,GAAGA,YAAY,CAACS,OAAO,CAACF,KAAK,EAAEL,SAAS,CAACI,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN;QAEA,MAAM,IAAII,KAAK,CAACV,YAAY,CAAC;MACjC;IACJ,CAAC;IACD;AACR;AACA;IACQR,SAAS,CAACmB,aAAa,GAAG,IAAAC,kBAAS,EAACvB,eAAe,CAACG,SAAS,CAACC,IAAI,CAAC;IAEnET,UAAU,CAAC6B,IAAI,CAACrB,SAAS,CAAC;IAC1B,OAAOR,UAAU;EACrB,CAAC,EAAE,EAAiB,CAAC;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["plugins","camelCase","createValidators","field","validation","validatorPlugins","byType","reduce","collection","item","validatorPlugin","find","plugin","validator","name","validate","value","isInvalid","message","result","e","interpolated","getVariableValues","variables","Object","keys","forEach","key","regex","RegExp","replace","Error","validatorName","push"],"sources":["createValidators.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsModelFieldValidator, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { Validator } from \"@webiny/validation/types\";\nimport camelCase from \"lodash/camelCase\";\n\nexport const createValidators = (\n field: CmsModelField,\n validation: (CmsModelFieldValidator | Validator)[]\n): Validator[] => {\n const validatorPlugins = plugins.byType<CmsModelFieldValidatorPlugin>(\n \"cms-model-field-validator\"\n );\n\n return validation.reduce<Validator[]>((collection, item) => {\n if (typeof item === \"function\") {\n return [...collection, item];\n }\n\n const validatorPlugin = validatorPlugins.find(\n plugin => plugin.validator.name === item.name\n );\n\n if (!validatorPlugin || typeof validatorPlugin.validator.validate !== \"function\") {\n return collection;\n }\n\n const validator = async (value: any | any[]) => {\n let isInvalid;\n let message = item.message;\n try {\n const result = await validatorPlugin.validator.validate(value, {\n validator: item,\n field\n });\n\n isInvalid = result === false;\n } catch (e) {\n isInvalid = true;\n if (e.message && !item.message) {\n message = e.message;\n }\n }\n\n if (isInvalid) {\n let interpolated = message || \"Invalid value.\";\n\n const getVariableValues = validatorPlugin.validator.getVariableValues;\n if (typeof getVariableValues === \"function\") {\n const variables = getVariableValues({ validator: item });\n\n Object.keys(variables).forEach(key => {\n const regex = new RegExp(`\\{${key}\\}`, \"g\");\n interpolated = interpolated.replace(regex, variables[key]);\n });\n }\n\n throw new Error(interpolated);\n }\n };\n /**\n * We need to set the validator name because it will be used as the reference to skip, if necessary.\n */\n validator.validatorName = camelCase(validatorPlugin.validator.name);\n\n collection.push(validator);\n return collection;\n }, [] as Validator[]);\n};\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,iBAAiB;AAGzC,OAAOC,SAAS,MAAM,kBAAkB;AAExC,OAAO,MAAMC,gBAAgB,GAAGA,CAC5BC,KAAoB,EACpBC,UAAkD,KACpC;EACd,MAAMC,gBAAgB,GAAGL,OAAO,CAACM,MAAM,CACnC,2BACJ,CAAC;EAED,OAAOF,UAAU,CAACG,MAAM,CAAc,CAACC,UAAU,EAAEC,IAAI,KAAK;IACxD,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;MAC5B,OAAO,CAAC,GAAGD,UAAU,EAAEC,IAAI,CAAC;IAChC;IAEA,MAAMC,eAAe,GAAGL,gBAAgB,CAACM,IAAI,CACzCC,MAAM,IAAIA,MAAM,CAACC,SAAS,CAACC,IAAI,KAAKL,IAAI,CAACK,IAC7C,CAAC;IAED,IAAI,CAACJ,eAAe,IAAI,OAAOA,eAAe,CAACG,SAAS,CAACE,QAAQ,KAAK,UAAU,EAAE;MAC9E,OAAOP,UAAU;IACrB;IAEA,MAAMK,SAAS,GAAG,MAAOG,KAAkB,IAAK;MAC5C,IAAIC,SAAS;MACb,IAAIC,OAAO,GAAGT,IAAI,CAACS,OAAO;MAC1B,IAAI;QACA,MAAMC,MAAM,GAAG,MAAMT,eAAe,CAACG,SAAS,CAACE,QAAQ,CAACC,KAAK,EAAE;UAC3DH,SAAS,EAAEJ,IAAI;UACfN;QACJ,CAAC,CAAC;QAEFc,SAAS,GAAGE,MAAM,KAAK,KAAK;MAChC,CAAC,CAAC,OAAOC,CAAC,EAAE;QACRH,SAAS,GAAG,IAAI;QAChB,IAAIG,CAAC,CAACF,OAAO,IAAI,CAACT,IAAI,CAACS,OAAO,EAAE;UAC5BA,OAAO,GAAGE,CAAC,CAACF,OAAO;QACvB;MACJ;MAEA,IAAID,SAAS,EAAE;QACX,IAAII,YAAY,GAAGH,OAAO,IAAI,gBAAgB;QAE9C,MAAMI,iBAAiB,GAAGZ,eAAe,CAACG,SAAS,CAACS,iBAAiB;QACrE,IAAI,OAAOA,iBAAiB,KAAK,UAAU,EAAE;UACzC,MAAMC,SAAS,GAAGD,iBAAiB,CAAC;YAAET,SAAS,EAAEJ;UAAK,CAAC,CAAC;UAExDe,MAAM,CAACC,IAAI,CAACF,SAAS,CAAC,CAACG,OAAO,CAACC,GAAG,IAAI;YAClC,MAAMC,KAAK,GAAG,IAAIC,MAAM,CAAC,KAAKF,GAAG,IAAI,EAAE,GAAG,CAAC;YAC3CN,YAAY,GAAGA,YAAY,CAACS,OAAO,CAACF,KAAK,EAAEL,SAAS,CAACI,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN;QAEA,MAAM,IAAII,KAAK,CAACV,YAAY,CAAC;MACjC;IACJ,CAAC;IACD;AACR;AACA;IACQR,SAAS,CAACmB,aAAa,GAAG/B,SAAS,CAACS,eAAe,CAACG,SAAS,CAACC,IAAI,CAAC;IAEnEN,UAAU,CAACyB,IAAI,CAACpB,SAAS,CAAC;IAC1B,OAAOL,UAAU;EACrB,CAAC,EAAE,EAAiB,CAAC;AACzB,CAAC","ignoreList":[]}