@webiny/api-headless-cms 5.41.2 → 5.41.3-beta.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.
@@ -7,6 +7,10 @@ exports.createFieldConverters = void 0;
7
7
  var _CmsModelObjectFieldConverterPlugin = require("./CmsModelObjectFieldConverterPlugin");
8
8
  var _CmsModelDefaultFieldConverterPlugin = require("./CmsModelDefaultFieldConverterPlugin");
9
9
  var _CmsModelDynamicZoneFieldConverterPlugin = require("./CmsModelDynamicZoneFieldConverterPlugin");
10
+ /**
11
+ * Field converters are used to convert the fieldId to storageId and vice versa.
12
+ */
13
+
10
14
  const createFieldConverters = () => {
11
15
  return [new _CmsModelObjectFieldConverterPlugin.CmsModelObjectFieldConverterPlugin(), new _CmsModelDynamicZoneFieldConverterPlugin.CmsModelDynamicZoneFieldConverterPlugin(), new _CmsModelDefaultFieldConverterPlugin.CmsModelDefaultFieldConverterPlugin()];
12
16
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_CmsModelObjectFieldConverterPlugin","require","_CmsModelDefaultFieldConverterPlugin","_CmsModelDynamicZoneFieldConverterPlugin","createFieldConverters","CmsModelObjectFieldConverterPlugin","CmsModelDynamicZoneFieldConverterPlugin","CmsModelDefaultFieldConverterPlugin","exports"],"sources":["index.ts"],"sourcesContent":["import { CmsModelObjectFieldConverterPlugin } from \"~/fieldConverters/CmsModelObjectFieldConverterPlugin\";\nimport { CmsModelDefaultFieldConverterPlugin } from \"~/fieldConverters/CmsModelDefaultFieldConverterPlugin\";\nimport { CmsModelDynamicZoneFieldConverterPlugin } from \"~/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin\";\n\nexport const createFieldConverters = () => {\n return [\n new CmsModelObjectFieldConverterPlugin(),\n new CmsModelDynamicZoneFieldConverterPlugin(),\n new CmsModelDefaultFieldConverterPlugin()\n ];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mCAAA,GAAAC,OAAA;AACA,IAAAC,oCAAA,GAAAD,OAAA;AACA,IAAAE,wCAAA,GAAAF,OAAA;AAEO,MAAMG,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,CACH,IAAIC,sEAAkC,CAAC,CAAC,EACxC,IAAIC,gFAAuC,CAAC,CAAC,EAC7C,IAAIC,wEAAmC,CAAC,CAAC,CAC5C;AACL,CAAC;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_CmsModelObjectFieldConverterPlugin","require","_CmsModelDefaultFieldConverterPlugin","_CmsModelDynamicZoneFieldConverterPlugin","createFieldConverters","CmsModelObjectFieldConverterPlugin","CmsModelDynamicZoneFieldConverterPlugin","CmsModelDefaultFieldConverterPlugin","exports"],"sources":["index.ts"],"sourcesContent":["/**\n * Field converters are used to convert the fieldId to storageId and vice versa.\n */\nimport { CmsModelObjectFieldConverterPlugin } from \"~/fieldConverters/CmsModelObjectFieldConverterPlugin\";\nimport { CmsModelDefaultFieldConverterPlugin } from \"~/fieldConverters/CmsModelDefaultFieldConverterPlugin\";\nimport { CmsModelDynamicZoneFieldConverterPlugin } from \"~/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin\";\n\nexport const createFieldConverters = () => {\n return [\n new CmsModelObjectFieldConverterPlugin(),\n new CmsModelDynamicZoneFieldConverterPlugin(),\n new CmsModelDefaultFieldConverterPlugin()\n ];\n};\n"],"mappings":";;;;;;AAGA,IAAAA,mCAAA,GAAAC,OAAA;AACA,IAAAC,oCAAA,GAAAD,OAAA;AACA,IAAAE,wCAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKO,MAAMG,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,CACH,IAAIC,sEAAkC,CAAC,CAAC,EACxC,IAAIC,gFAAuC,CAAC,CAAC,EAC7C,IAAIC,wEAAmC,CAAC,CAAC,CAC5C;AACL,CAAC;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms",
3
- "version": "5.41.2",
3
+ "version": "5.41.3-beta.0",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "cms:base"
@@ -22,20 +22,20 @@
22
22
  "@babel/runtime": "7.24.1",
23
23
  "@graphql-tools/merge": "9.0.8",
24
24
  "@graphql-tools/schema": "10.0.7",
25
- "@webiny/api": "5.41.2",
26
- "@webiny/api-i18n": "5.41.2",
27
- "@webiny/api-security": "5.41.2",
28
- "@webiny/api-tenancy": "5.41.2",
29
- "@webiny/error": "5.41.2",
30
- "@webiny/handler": "5.41.2",
31
- "@webiny/handler-aws": "5.41.2",
32
- "@webiny/handler-db": "5.41.2",
33
- "@webiny/handler-graphql": "5.41.2",
34
- "@webiny/lexical-converter": "5.41.2",
35
- "@webiny/plugins": "5.41.2",
36
- "@webiny/pubsub": "5.41.2",
37
- "@webiny/utils": "5.41.2",
38
- "@webiny/validation": "5.41.2",
25
+ "@webiny/api": "5.41.3-beta.0",
26
+ "@webiny/api-i18n": "5.41.3-beta.0",
27
+ "@webiny/api-security": "5.41.3-beta.0",
28
+ "@webiny/api-tenancy": "5.41.3-beta.0",
29
+ "@webiny/error": "5.41.3-beta.0",
30
+ "@webiny/handler": "5.41.3-beta.0",
31
+ "@webiny/handler-aws": "5.41.3-beta.0",
32
+ "@webiny/handler-db": "5.41.3-beta.0",
33
+ "@webiny/handler-graphql": "5.41.3-beta.0",
34
+ "@webiny/lexical-converter": "5.41.3-beta.0",
35
+ "@webiny/plugins": "5.41.3-beta.0",
36
+ "@webiny/pubsub": "5.41.3-beta.0",
37
+ "@webiny/utils": "5.41.3-beta.0",
38
+ "@webiny/validation": "5.41.3-beta.0",
39
39
  "dot-prop": "6.0.1",
40
40
  "graphql": "15.8.0",
41
41
  "graphql-tag": "2.12.6",
@@ -53,11 +53,11 @@
53
53
  "@babel/core": "7.24.3",
54
54
  "@babel/preset-env": "7.24.3",
55
55
  "@types/babel__code-frame": "7.0.6",
56
- "@webiny/api-wcp": "5.41.2",
57
- "@webiny/aws-sdk": "5.41.2",
58
- "@webiny/cli": "5.41.2",
59
- "@webiny/db-dynamodb": "5.41.2",
60
- "@webiny/project-utils": "5.41.2",
56
+ "@webiny/api-wcp": "5.41.3-beta.0",
57
+ "@webiny/aws-sdk": "5.41.3-beta.0",
58
+ "@webiny/cli": "5.41.3-beta.0",
59
+ "@webiny/db-dynamodb": "5.41.3-beta.0",
60
+ "@webiny/project-utils": "5.41.3-beta.0",
61
61
  "apollo-graphql": "0.9.7",
62
62
  "get-yarn-workspaces": "1.0.2",
63
63
  "graphql": "15.8.0",
@@ -77,5 +77,5 @@
77
77
  "build": "yarn webiny run build",
78
78
  "watch": "yarn webiny run watch"
79
79
  },
80
- "gitHead": "69a78b382b4de30846edfc2a9d5f73ca223fcc10"
80
+ "gitHead": "a88d62467e51fe0bdec29360233fa1cb27359929"
81
81
  }
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Field converters are used to convert the fieldId to storageId and vice versa.
3
+ */
1
4
  import { Plugin } from "@webiny/plugins";
2
5
  import { CmsEntryValues, CmsModelFieldWithParent } from "../types";
3
6
  import { ConverterCollection } from "../utils/converters/ConverterCollection";
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.CmsModelFieldConverterPlugin = void 0;
7
7
  var _plugins = require("@webiny/plugins");
8
+ /**
9
+ * Field converters are used to convert the fieldId to storageId and vice versa.
10
+ */
11
+
8
12
  class CmsModelFieldConverterPlugin extends _plugins.Plugin {
9
13
  static type = "cms.field.converter";
10
14
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_plugins","require","CmsModelFieldConverterPlugin","Plugin","type","exports"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams<F = CmsModelFieldWithParent> {\n field: F;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAUO,MAAeC,4BAA4B,SAASC,eAAM,CAAC;EAC9D,OAAuBC,IAAI,GAAG,qBAAqB;AAMvD;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_plugins","require","CmsModelFieldConverterPlugin","Plugin","type","exports"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["/**\n * Field converters are used to convert the fieldId to storageId and vice versa.\n */\nimport { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams<F = CmsModelFieldWithParent> {\n field: F;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAWO,MAAeC,4BAA4B,SAASC,eAAM,CAAC;EAC9D,OAAuBC,IAAI,GAAG,qBAAqB;AAMvD;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Storage transforms are used to transform the data before it is saved to the database and after it is read from the database.
3
+ */
1
4
  import { Plugin } from "@webiny/plugins/Plugin";
2
5
  import { CmsModel, CmsModelField, CmsModelFieldType } from "../types";
3
6
  import { PluginsContainer } from "@webiny/plugins";
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.StorageTransformPlugin = void 0;
7
7
  var _Plugin = require("@webiny/plugins/Plugin");
8
+ /**
9
+ * Storage transforms are used to transform the data before it is saved to the database and after it is read from the database.
10
+ */
11
+
8
12
  class StorageTransformPlugin extends _Plugin.Plugin {
9
13
  static type = "cms.storage.transform.plugin";
10
14
  get fieldType() {
@@ -1 +1 @@
1
- {"version":3,"names":["_Plugin","require","StorageTransformPlugin","Plugin","type","fieldType","config","constructor","name","toStorage","params","fromStorage","exports"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField, CmsModelFieldType } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: F;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: Partial<F> & Pick<F, \"id\" | \"fieldId\" | \"storageId\" | \"type\" | \"settings\">;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R, F extends CmsModelField> {\n name?: string;\n fieldType: CmsModelFieldType;\n toStorage: (params: ToStorageParams<T, F>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R, F>) => Promise<T>;\n}\nexport class StorageTransformPlugin<\n T = any,\n R = any,\n F extends CmsModelField = CmsModelField\n> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R, F>;\n\n public constructor(config: StorageTransformPluginParams<T, R, F>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T, F>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R, F>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AA0BO,MAAMC,sBAAsB,SAIzBC,cAAM,CAAC;EACb,OAAgCC,IAAI,GAAW,8BAA8B;EAC7E,IAAWC,SAASA,CAAA,EAAW;IAC3B,OAAO,IAAI,CAACC,MAAM,CAACD,SAAS;EAChC;EAIOE,WAAWA,CAACD,MAA6C,EAAE;IAC9D,KAAK,CAAC,CAAC;IACP,IAAI,CAACE,IAAI,GAAGF,MAAM,CAACE,IAAI;IACvB,IAAI,CAACF,MAAM,GAAGA,MAAM;EACxB;EAEOG,SAASA,CAACC,MAA6B,EAAc;IACxD,OAAO,IAAI,CAACJ,MAAM,CAACG,SAAS,CAACC,MAAM,CAAC;EACxC;EAEOC,WAAWA,CAACD,MAA+B,EAAc;IAC5D,OAAO,IAAI,CAACJ,MAAM,CAACK,WAAW,CAACD,MAAM,CAAC;EAC1C;AACJ;AAACE,OAAA,CAAAV,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_Plugin","require","StorageTransformPlugin","Plugin","type","fieldType","config","constructor","name","toStorage","params","fromStorage","exports"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["/**\n * Storage transforms are used to transform the data before it is saved to the database and after it is read from the database.\n */\nimport { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField, CmsModelFieldType } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: F;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T, F extends CmsModelField> {\n model: CmsModel;\n field: Partial<F> & Pick<F, \"id\" | \"fieldId\" | \"storageId\" | \"type\" | \"settings\">;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R, F extends CmsModelField> {\n name?: string;\n fieldType: CmsModelFieldType;\n toStorage: (params: ToStorageParams<T, F>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R, F>) => Promise<T>;\n}\nexport class StorageTransformPlugin<\n T = any,\n R = any,\n F extends CmsModelField = CmsModelField\n> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R, F>;\n\n public constructor(config: StorageTransformPluginParams<T, R, F>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T, F>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R, F>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AA2BO,MAAMC,sBAAsB,SAIzBC,cAAM,CAAC;EACb,OAAgCC,IAAI,GAAW,8BAA8B;EAC7E,IAAWC,SAASA,CAAA,EAAW;IAC3B,OAAO,IAAI,CAACC,MAAM,CAACD,SAAS;EAChC;EAIOE,WAAWA,CAACD,MAA6C,EAAE;IAC9D,KAAK,CAAC,CAAC;IACP,IAAI,CAACE,IAAI,GAAGF,MAAM,CAACE,IAAI;IACvB,IAAI,CAACF,MAAM,GAAGA,MAAM;EACxB;EAEOG,SAASA,CAACC,MAA6B,EAAc;IACxD,OAAO,IAAI,CAACJ,MAAM,CAACG,SAAS,CAACC,MAAM,CAAC;EACxC;EAEOC,WAAWA,CAACD,MAA+B,EAAc;IAC5D,OAAO,IAAI,CAACJ,MAAM,CAACK,WAAW,CAACD,MAAM,CAAC;EAC1C;AACJ;AAACE,OAAA,CAAAV,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { CmsModelField } from "../types";
2
+ import { StorageTransformPlugin } from "../plugins";
3
+ export declare const createDateStorageTransformPlugin: () => StorageTransformPlugin<any, any, CmsModelField>;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createDateStorageTransformPlugin = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _plugins = require("../plugins");
10
+ /**
11
+ * File is @internal
12
+ */
13
+
14
+ const excludeTypes = ["time", "dateTimeWithTimezone"];
15
+ const convertFromStorage = value => {
16
+ if (!value) {
17
+ return value === null ? null : undefined;
18
+ }
19
+ try {
20
+ const output = new Date(value);
21
+ if (isNaN(output.getTime())) {
22
+ if (process.env.DEBUG !== "true") {
23
+ return null;
24
+ }
25
+ console.warn(`Could not transform "${value}" to date.`);
26
+ return null;
27
+ }
28
+ return output;
29
+ } catch {
30
+ if (process.env.DEBUG !== "true") {
31
+ return null;
32
+ }
33
+ console.warn(`Could not transform "${value}" from storage for date field type.`);
34
+ return null;
35
+ }
36
+ };
37
+ const convertValueToStorage = (field, value) => {
38
+ if (value instanceof Date || value?.toISOString) {
39
+ return value.toISOString();
40
+ } else if (typeof value === "string") {
41
+ return value;
42
+ }
43
+ throw new _error.default("Error converting value to a storage type.", "TO_STORAGE_ERROR", {
44
+ value: value,
45
+ fieldId: field.fieldId,
46
+ storageId: field.storageId
47
+ });
48
+ };
49
+ const createDateStorageTransformPlugin = () => {
50
+ return new _plugins.StorageTransformPlugin({
51
+ fieldType: "datetime",
52
+ name: "headless-cms.storage-transform.date.default",
53
+ fromStorage: async ({
54
+ value,
55
+ field
56
+ }) => {
57
+ const {
58
+ type
59
+ } = field.settings || {};
60
+ if (!value || !type || excludeTypes.includes(type)) {
61
+ return value;
62
+ } else if (field.multipleValues) {
63
+ if (!Array.isArray(value)) {
64
+ return [];
65
+ }
66
+ const multipleValues = value;
67
+ const results = [];
68
+ for (const input of multipleValues) {
69
+ if (input instanceof Date) {
70
+ if (isNaN(input.getTime())) {
71
+ continue;
72
+ }
73
+ results.push(input);
74
+ continue;
75
+ } else if (!input || typeof input === "object" && Object.keys(input).length === 0) {
76
+ continue;
77
+ }
78
+ const output = convertFromStorage(input);
79
+ if (!output) {
80
+ continue;
81
+ }
82
+ results.push(output);
83
+ }
84
+ return results;
85
+ }
86
+ return convertFromStorage(value);
87
+ },
88
+ toStorage: async ({
89
+ value,
90
+ field
91
+ }) => {
92
+ const {
93
+ type
94
+ } = field.settings || {};
95
+ if (!value || !type || excludeTypes.includes(type)) {
96
+ return value;
97
+ }
98
+ if (field.multipleValues) {
99
+ const multipleValues = value;
100
+ const results = [];
101
+ for (const input of multipleValues) {
102
+ if (!input) {
103
+ continue;
104
+ }
105
+ const output = convertValueToStorage(field, input);
106
+ if (!output) {
107
+ continue;
108
+ }
109
+ results.push(output);
110
+ }
111
+ return results;
112
+ }
113
+ return convertValueToStorage(field, value);
114
+ }
115
+ });
116
+ };
117
+ exports.createDateStorageTransformPlugin = createDateStorageTransformPlugin;
118
+
119
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_plugins","excludeTypes","convertFromStorage","value","undefined","output","Date","isNaN","getTime","process","env","DEBUG","console","warn","convertValueToStorage","field","toISOString","WebinyError","fieldId","storageId","createDateStorageTransformPlugin","StorageTransformPlugin","fieldType","name","fromStorage","type","settings","includes","multipleValues","Array","isArray","results","input","push","Object","keys","length","toStorage","exports"],"sources":["date.ts"],"sourcesContent":["/**\n * File is @internal\n */\nimport WebinyError from \"@webiny/error\";\nimport { CmsModelField } from \"~/types\";\nimport { GenericRecord } from \"@webiny/api/types\";\nimport { StorageTransformPlugin } from \"~/plugins\";\n\nconst excludeTypes = [\"time\", \"dateTimeWithTimezone\"];\n\nconst convertFromStorage = (value: unknown): Date | unknown => {\n if (!value) {\n return value === null ? null : undefined;\n }\n try {\n const output = new Date(value as string);\n if (isNaN(output.getTime())) {\n if (process.env.DEBUG !== \"true\") {\n return null;\n }\n console.warn(`Could not transform \"${value}\" to date.`);\n return null;\n }\n return output;\n } catch {\n if (process.env.DEBUG !== \"true\") {\n return null;\n }\n console.warn(`Could not transform \"${value}\" from storage for date field type.`);\n return null;\n }\n};\n\nconst convertValueToStorage = (field: CmsModelField, value: Date | string | unknown): string => {\n if (value instanceof Date || (value as GenericRecord)?.toISOString) {\n return (value as Date).toISOString();\n } else if (typeof value === \"string\") {\n return value as string;\n }\n throw new WebinyError(\"Error converting value to a storage type.\", \"TO_STORAGE_ERROR\", {\n value: value,\n fieldId: field.fieldId,\n storageId: field.storageId\n });\n};\n\nexport const createDateStorageTransformPlugin = () => {\n return new StorageTransformPlugin({\n fieldType: \"datetime\",\n name: \"headless-cms.storage-transform.date.default\",\n fromStorage: async ({ value, field }) => {\n const { type } = field.settings || {};\n if (!value || !type || excludeTypes.includes(type)) {\n return value;\n } else if (field.multipleValues) {\n if (!Array.isArray(value)) {\n return [];\n }\n const multipleValues = value as unknown[];\n const results: (Date | unknown)[] = [];\n for (const input of multipleValues) {\n if (input instanceof Date) {\n if (isNaN(input.getTime())) {\n continue;\n }\n results.push(input);\n continue;\n } else if (\n !input ||\n (typeof input === \"object\" && Object.keys(input).length === 0)\n ) {\n continue;\n }\n const output = convertFromStorage(input);\n if (!output) {\n continue;\n }\n results.push(output);\n }\n return results;\n }\n return convertFromStorage(value);\n },\n toStorage: async ({ value, field }) => {\n const { type } = field.settings || {};\n if (!value || !type || excludeTypes.includes(type)) {\n return value;\n }\n if (field.multipleValues) {\n const multipleValues = value as (string | Date | null | undefined)[];\n const results: string[] = [];\n for (const input of multipleValues) {\n if (!input) {\n continue;\n }\n const output = convertValueToStorage(field, input);\n if (!output) {\n continue;\n }\n results.push(output);\n }\n return results;\n }\n return convertValueToStorage(field, value);\n }\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { StorageTransformPlugin } from "../plugins";
2
+ export declare const createDynamicZoneStorageTransform: () => StorageTransformPlugin;
@@ -0,0 +1,157 @@
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 _plugins = require("../plugins");
9
+ var _pReduce = _interopRequireDefault(require("p-reduce"));
10
+ const processToStorage = async params => {
11
+ const {
12
+ model,
13
+ field: parentField,
14
+ value: input,
15
+ getStoragePlugin,
16
+ plugins
17
+ } = params;
18
+ const output = structuredClone(input);
19
+ if (!output._templateId) {
20
+ return output;
21
+ }
22
+ const template = parentField.settings.templates.find(t => t.id === output._templateId);
23
+ if (!template || !template.fields.length) {
24
+ return output;
25
+ }
26
+ return await (0, _pReduce.default)(template.fields, async (values, field) => {
27
+ const value = values[field.fieldId];
28
+ if (!value) {
29
+ values[field.fieldId] = value;
30
+ return values;
31
+ }
32
+ const plugin = getStoragePlugin(field.type);
33
+ if (!plugin) {
34
+ console.error(`Missing storage plugin for field type "${field.type}".`);
35
+ delete values[field.fieldId];
36
+ return values;
37
+ }
38
+ values[field.fieldId] = await plugin.toStorage({
39
+ plugins,
40
+ getStoragePlugin,
41
+ model,
42
+ field,
43
+ value
44
+ });
45
+ return values;
46
+ }, output);
47
+ };
48
+ const processFromStorage = async params => {
49
+ const {
50
+ model,
51
+ field: parentField,
52
+ value: input,
53
+ getStoragePlugin,
54
+ plugins
55
+ } = params;
56
+ const output = structuredClone(input);
57
+ if (!output._templateId) {
58
+ return output;
59
+ }
60
+ const template = parentField.settings.templates.find(t => t.id === output._templateId);
61
+ if (!template || !template.fields.length) {
62
+ return output;
63
+ }
64
+ return await (0, _pReduce.default)(template.fields, async (values, field) => {
65
+ const value = values[field.fieldId];
66
+ if (!value) {
67
+ return values;
68
+ }
69
+ const plugin = getStoragePlugin(field.type);
70
+ if (!plugin) {
71
+ console.error(`Missing storage plugin for field type "${field.type}".`);
72
+ delete values[field.fieldId];
73
+ return values;
74
+ }
75
+ values[field.fieldId] = await plugin.fromStorage({
76
+ plugins,
77
+ getStoragePlugin,
78
+ model,
79
+ field,
80
+ value
81
+ });
82
+ return values;
83
+ }, output);
84
+ };
85
+ const createDynamicZoneStorageTransform = () => {
86
+ return new _plugins.StorageTransformPlugin({
87
+ name: "headless-cms.storage-transform.dynamicZone.default",
88
+ fieldType: "dynamicZone",
89
+ toStorage: async ({
90
+ field,
91
+ value: input,
92
+ getStoragePlugin,
93
+ model,
94
+ plugins
95
+ }) => {
96
+ if (!input) {
97
+ return input;
98
+ } else if (field.multipleValues) {
99
+ if (!Array.isArray(input)) {
100
+ return input;
101
+ }
102
+ const values = input;
103
+ return Promise.all(values.map(async value => {
104
+ return await processToStorage({
105
+ model,
106
+ field: field,
107
+ value,
108
+ getStoragePlugin,
109
+ plugins
110
+ });
111
+ }));
112
+ }
113
+ return await processToStorage({
114
+ model,
115
+ field: field,
116
+ value: input,
117
+ getStoragePlugin,
118
+ plugins
119
+ });
120
+ },
121
+ fromStorage: async ({
122
+ field,
123
+ value: input,
124
+ getStoragePlugin,
125
+ model,
126
+ plugins
127
+ }) => {
128
+ if (!input) {
129
+ return input;
130
+ } else if (field.multipleValues) {
131
+ if (!Array.isArray(input)) {
132
+ return input;
133
+ }
134
+ const values = input;
135
+ return await Promise.all(values.map(async value => {
136
+ return await processFromStorage({
137
+ model,
138
+ field: field,
139
+ value,
140
+ getStoragePlugin,
141
+ plugins
142
+ });
143
+ }));
144
+ }
145
+ return await processFromStorage({
146
+ model,
147
+ field: field,
148
+ value: input,
149
+ getStoragePlugin,
150
+ plugins
151
+ });
152
+ }
153
+ });
154
+ };
155
+ exports.createDynamicZoneStorageTransform = createDynamicZoneStorageTransform;
156
+
157
+ //# sourceMappingURL=dynamicZone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_pReduce","_interopRequireDefault","processToStorage","params","model","field","parentField","value","input","getStoragePlugin","plugins","output","structuredClone","_templateId","template","settings","templates","find","t","id","fields","length","pReduce","values","fieldId","plugin","type","console","error","toStorage","processFromStorage","fromStorage","createDynamicZoneStorageTransform","StorageTransformPlugin","name","fieldType","multipleValues","Array","isArray","Promise","all","map","exports"],"sources":["dynamicZone.ts"],"sourcesContent":["import { StorageTransformPlugin, ToStorageParams } from \"~/plugins\";\nimport { GenericRecord } from \"@webiny/api/types\";\nimport { CmsModel, CmsModelDynamicZoneField, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport pReduce from \"p-reduce\";\n\ninterface IProcessParams {\n model: CmsModel;\n field: CmsModelDynamicZoneField;\n value: GenericRecord;\n getStoragePlugin: ToStorageParams<GenericRecord, CmsModelField>[\"getStoragePlugin\"];\n plugins: PluginsContainer;\n}\n\nconst processToStorage = async (params: IProcessParams): Promise<GenericRecord> => {\n const { model, field: parentField, value: input, getStoragePlugin, plugins } = params;\n\n const output: GenericRecord = structuredClone(input);\n\n if (!output._templateId) {\n return output;\n }\n const template = parentField.settings.templates.find(t => t.id === output._templateId);\n if (!template || !template.fields.length) {\n return output;\n }\n\n return await pReduce(\n template.fields,\n async (values, field) => {\n const value = values[field.fieldId];\n\n if (!value) {\n values[field.fieldId] = value;\n return values;\n }\n const plugin = getStoragePlugin(field.type);\n if (!plugin) {\n console.error(`Missing storage plugin for field type \"${field.type}\".`);\n delete values[field.fieldId];\n return values;\n }\n values[field.fieldId] = await plugin.toStorage({\n plugins,\n getStoragePlugin,\n model,\n field,\n value\n });\n\n return values;\n },\n output\n );\n};\n\nconst processFromStorage = async (params: IProcessParams): Promise<GenericRecord> => {\n const { model, field: parentField, value: input, getStoragePlugin, plugins } = params;\n\n const output: GenericRecord = structuredClone(input);\n\n if (!output._templateId) {\n return output;\n }\n const template = parentField.settings.templates.find(t => t.id === output._templateId);\n if (!template || !template.fields.length) {\n return output;\n }\n\n return await pReduce(\n template.fields,\n async (values, field) => {\n const value = values[field.fieldId];\n\n if (!value) {\n return values;\n }\n const plugin = getStoragePlugin(field.type);\n if (!plugin) {\n console.error(`Missing storage plugin for field type \"${field.type}\".`);\n delete values[field.fieldId];\n return values;\n }\n values[field.fieldId] = await plugin.fromStorage({\n plugins,\n getStoragePlugin,\n model,\n field,\n value\n });\n\n return values;\n },\n output\n );\n};\n\nexport const createDynamicZoneStorageTransform = (): StorageTransformPlugin => {\n return new StorageTransformPlugin({\n name: \"headless-cms.storage-transform.dynamicZone.default\",\n fieldType: \"dynamicZone\",\n toStorage: async ({ field, value: input, getStoragePlugin, model, plugins }) => {\n if (!input) {\n return input;\n } else if (field.multipleValues) {\n if (!Array.isArray(input)) {\n return input;\n }\n const values = input as GenericRecord[];\n return Promise.all(\n values.map(async value => {\n return await processToStorage({\n model,\n field: field as CmsModelDynamicZoneField,\n value,\n getStoragePlugin,\n plugins\n });\n })\n );\n }\n return await processToStorage({\n model,\n field: field as CmsModelDynamicZoneField,\n value: input,\n getStoragePlugin,\n plugins\n });\n },\n fromStorage: async ({ field, value: input, getStoragePlugin, model, plugins }) => {\n if (!input) {\n return input;\n } else if (field.multipleValues) {\n if (!Array.isArray(input)) {\n return input;\n }\n const values = input as GenericRecord[];\n\n return await Promise.all(\n values.map(async value => {\n return await processFromStorage({\n model,\n field: field as CmsModelDynamicZoneField,\n value,\n getStoragePlugin,\n plugins\n });\n })\n );\n }\n return await processFromStorage({\n model,\n field: field as CmsModelDynamicZoneField,\n value: input,\n getStoragePlugin,\n plugins\n });\n }\n });\n};\n"],"mappings":"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","ignoreList":[]}
package/storage/index.js CHANGED
@@ -7,8 +7,14 @@ exports.createStorageTransform = void 0;
7
7
  var _default = require("./default");
8
8
  var _object = require("./object");
9
9
  var _json = require("./json");
10
+ var _dynamicZone = require("./dynamicZone");
11
+ var _date = require("./date");
12
+ /**
13
+ * Storage transforms are used to transform the data before it is saved to the database and after it is read from the database.
14
+ */
15
+
10
16
  const createStorageTransform = () => {
11
- return [(0, _default.createDefaultStorageTransform)(), (0, _object.createObjectStorageTransform)(), (0, _json.createJsonStorageTransform)()];
17
+ return [(0, _default.createDefaultStorageTransform)(), (0, _date.createDateStorageTransformPlugin)(), (0, _object.createObjectStorageTransform)(), (0, _json.createJsonStorageTransform)(), (0, _dynamicZone.createDynamicZoneStorageTransform)()];
12
18
  };
13
19
  exports.createStorageTransform = createStorageTransform;
14
20
 
@@ -1 +1 @@
1
- {"version":3,"names":["_default","require","_object","_json","createStorageTransform","createDefaultStorageTransform","createObjectStorageTransform","createJsonStorageTransform","exports"],"sources":["index.ts"],"sourcesContent":["import { createDefaultStorageTransform } from \"./default\";\nimport { createObjectStorageTransform } from \"./object\";\nimport { createJsonStorageTransform } from \"./json\";\n\nexport const createStorageTransform = () => {\n return [\n createDefaultStorageTransform(),\n createObjectStorageTransform(),\n createJsonStorageTransform()\n ];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEO,MAAMG,sBAAsB,GAAGA,CAAA,KAAM;EACxC,OAAO,CACH,IAAAC,sCAA6B,EAAC,CAAC,EAC/B,IAAAC,oCAA4B,EAAC,CAAC,EAC9B,IAAAC,gCAA0B,EAAC,CAAC,CAC/B;AACL,CAAC;AAACC,OAAA,CAAAJ,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_default","require","_object","_json","_dynamicZone","_date","createStorageTransform","createDefaultStorageTransform","createDateStorageTransformPlugin","createObjectStorageTransform","createJsonStorageTransform","createDynamicZoneStorageTransform","exports"],"sources":["index.ts"],"sourcesContent":["/**\n * Storage transforms are used to transform the data before it is saved to the database and after it is read from the database.\n */\nimport { createDefaultStorageTransform } from \"./default\";\nimport { createObjectStorageTransform } from \"./object\";\nimport { createJsonStorageTransform } from \"./json\";\nimport { createDynamicZoneStorageTransform } from \"./dynamicZone\";\nimport { createDateStorageTransformPlugin } from \"./date\";\n\nexport const createStorageTransform = () => {\n return [\n createDefaultStorageTransform(),\n createDateStorageTransformPlugin(),\n createObjectStorageTransform(),\n createJsonStorageTransform(),\n createDynamicZoneStorageTransform()\n ];\n};\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAPA;AACA;AACA;;AAOO,MAAMK,sBAAsB,GAAGA,CAAA,KAAM;EACxC,OAAO,CACH,IAAAC,sCAA6B,EAAC,CAAC,EAC/B,IAAAC,sCAAgC,EAAC,CAAC,EAClC,IAAAC,oCAA4B,EAAC,CAAC,EAC9B,IAAAC,gCAA0B,EAAC,CAAC,EAC5B,IAAAC,8CAAiC,EAAC,CAAC,CACtC;AACL,CAAC;AAACC,OAAA,CAAAN,sBAAA,GAAAA,sBAAA","ignoreList":[]}
package/storage/object.js CHANGED
@@ -24,11 +24,12 @@ const processValue = async params => {
24
24
  if (!plugin) {
25
25
  throw new Error(`Missing storage plugin for field type "${baseType}".`);
26
26
  }
27
+ const input = sourceValue[field.fieldId];
27
28
  const value = await plugin[operation]({
28
29
  plugins,
29
30
  model,
30
31
  field,
31
- value: sourceValue[field.fieldId],
32
+ value: input,
32
33
  getStoragePlugin
33
34
  });
34
35
  return {
@@ -73,27 +74,30 @@ const createObjectStorageTransform = () => {
73
74
  },
74
75
  fromStorage: async ({
75
76
  field,
76
- value,
77
+ value: input,
77
78
  getStoragePlugin,
78
79
  plugins,
79
80
  model
80
81
  }) => {
81
- if (!value) {
82
+ if (!input) {
82
83
  return null;
83
84
  }
84
85
  const fields = field.settings?.fields || [];
85
86
  if (field.multipleValues) {
86
- return (0, _pMap.default)(value, value => processValue({
87
- sourceValue: value,
88
- getStoragePlugin,
89
- model,
90
- plugins,
91
- operation: "fromStorage",
92
- fields
87
+ const values = input;
88
+ return await Promise.all(values.map(async value => {
89
+ return await processValue({
90
+ sourceValue: value,
91
+ getStoragePlugin,
92
+ model,
93
+ plugins,
94
+ operation: "fromStorage",
95
+ fields
96
+ });
93
97
  }));
94
98
  }
95
- return processValue({
96
- sourceValue: value,
99
+ return await processValue({
100
+ sourceValue: input,
97
101
  getStoragePlugin,
98
102
  model,
99
103
  plugins,
@@ -1 +1 @@
1
- {"version":3,"names":["_pReduce","_interopRequireDefault","require","_pMap","_StorageTransformPlugin","_getBaseFieldType","processValue","params","fields","sourceValue","getStoragePlugin","plugins","model","operation","pReduce","values","field","baseType","getBaseFieldType","plugin","Error","value","fieldId","createObjectStorageTransform","StorageTransformPlugin","name","fieldType","toStorage","settings","multipleValues","pMap","fromStorage","exports"],"sources":["object.ts"],"sourcesContent":["import pReduce from \"p-reduce\";\nimport pMap from \"p-map\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface ProcessValueParams {\n fields: CmsModelField[];\n sourceValue: Record<string, any>;\n getStoragePlugin: (fieldType: string) => StorageTransformPlugin;\n plugins: PluginsContainer;\n model: CmsModel;\n operation: \"toStorage\" | \"fromStorage\";\n}\ninterface ProcessValue {\n (params: ProcessValueParams): Promise<Record<string, any>>;\n}\n\nconst processValue: ProcessValue = async params => {\n const { fields, sourceValue, getStoragePlugin, plugins, model, operation } = params;\n return await pReduce(\n fields,\n async (values, field) => {\n const baseType = getBaseFieldType(field);\n const plugin = getStoragePlugin(baseType);\n if (!plugin) {\n throw new Error(`Missing storage plugin for field type \"${baseType}\".`);\n }\n const value = await plugin[operation]({\n plugins,\n model,\n field,\n value: sourceValue[field.fieldId],\n getStoragePlugin\n });\n return { ...values, [field.fieldId]: value };\n },\n {}\n );\n};\n\nexport const createObjectStorageTransform = (): StorageTransformPlugin => {\n return new StorageTransformPlugin({\n name: \"headless-cms.storage-transform.object.default\",\n fieldType: \"object\",\n toStorage: async ({ field, value, getStoragePlugin, model, plugins }) => {\n if (!value) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n return await pMap(value as Record<string, any>[], value =>\n processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n })\n );\n }\n\n return await processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n });\n },\n fromStorage: async ({ field, value, getStoragePlugin, plugins, model }) => {\n if (!value) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n return pMap(value as Record<string, any>[], value =>\n processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n })\n );\n }\n\n return processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n });\n }\n });\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pReduce","_interopRequireDefault","require","_pMap","_StorageTransformPlugin","_getBaseFieldType","processValue","params","fields","sourceValue","getStoragePlugin","plugins","model","operation","pReduce","values","field","baseType","getBaseFieldType","plugin","Error","input","fieldId","value","createObjectStorageTransform","StorageTransformPlugin","name","fieldType","toStorage","settings","multipleValues","pMap","fromStorage","Promise","all","map","exports"],"sources":["object.ts"],"sourcesContent":["import pReduce from \"p-reduce\";\nimport pMap from \"p-map\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\ninterface ProcessValueParams {\n fields: CmsModelField[];\n sourceValue: GenericRecord;\n getStoragePlugin: (fieldType: string) => StorageTransformPlugin;\n plugins: PluginsContainer;\n model: CmsModel;\n operation: \"toStorage\" | \"fromStorage\";\n}\ninterface ProcessValue {\n (params: ProcessValueParams): Promise<GenericRecord>;\n}\n\nconst processValue: ProcessValue = async params => {\n const { fields, sourceValue, getStoragePlugin, plugins, model, operation } = params;\n return await pReduce(\n fields,\n async (values, field) => {\n const baseType = getBaseFieldType(field);\n const plugin = getStoragePlugin(baseType);\n if (!plugin) {\n throw new Error(`Missing storage plugin for field type \"${baseType}\".`);\n }\n const input = sourceValue[field.fieldId];\n const value = await plugin[operation]({\n plugins,\n model,\n field,\n value: input,\n getStoragePlugin\n });\n return { ...values, [field.fieldId]: value };\n },\n {}\n );\n};\n\nexport const createObjectStorageTransform = (): StorageTransformPlugin => {\n return new StorageTransformPlugin({\n name: \"headless-cms.storage-transform.object.default\",\n fieldType: \"object\",\n toStorage: async ({ field, value, getStoragePlugin, model, plugins }) => {\n if (!value) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n return await pMap(value as GenericRecord[], value =>\n processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n })\n );\n }\n\n return await processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"toStorage\",\n fields\n });\n },\n fromStorage: async ({ field, value: input, getStoragePlugin, plugins, model }) => {\n if (!input) {\n return null;\n }\n\n const fields = (field.settings?.fields || []) as CmsModelField[];\n\n if (field.multipleValues) {\n const values = input as GenericRecord[];\n\n return await Promise.all(\n values.map(async value => {\n return await processValue({\n sourceValue: value,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n });\n })\n );\n }\n\n return await processValue({\n sourceValue: input,\n getStoragePlugin,\n model,\n plugins,\n operation: \"fromStorage\",\n fields\n });\n }\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,9 @@
1
+ import { StorageTransformPlugin } from "../plugins/StorageTransformPlugin";
1
2
  import { CmsContext, CmsEntry, CmsModel, CmsModelField } from "../types";
3
+ export interface GetStoragePluginFactory {
4
+ (context: Pick<CmsContext, "plugins">): (fieldType: string) => StorageTransformPlugin<any>;
5
+ }
6
+ export declare const getStoragePluginFactory: GetStoragePluginFactory;
2
7
  /**
3
8
  * A function that is used in crud to transform entry into the storage type.
4
9
  */
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.entryToStorageTransform = exports.entryFromStorageTransform = exports.entryFieldFromStorageTransform = void 0;
7
+ exports.getStoragePluginFactory = exports.entryToStorageTransform = exports.entryFromStorageTransform = exports.entryFieldFromStorageTransform = void 0;
8
8
  var _error = _interopRequireDefault(require("@webiny/error"));
9
9
  var _StorageTransformPlugin = require("../plugins/StorageTransformPlugin");
10
10
  var _getBaseFieldType = require("./getBaseFieldType");
@@ -36,6 +36,7 @@ const getStoragePluginFactory = context => {
36
36
  /**
37
37
  * This should be used when transforming the whole entry.
38
38
  */
39
+ exports.getStoragePluginFactory = getStoragePluginFactory;
39
40
  const entryStorageTransform = async (context, model, operation, entry) => {
40
41
  const getStoragePlugin = getStoragePluginFactory(context);
41
42
  const transformedValues = {};