summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/content_editor/services/build_serializer_config.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/content_editor/services/build_serializer_config.js')
-rw-r--r--app/assets/javascripts/content_editor/services/build_serializer_config.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/assets/javascripts/content_editor/services/build_serializer_config.js b/app/assets/javascripts/content_editor/services/build_serializer_config.js
new file mode 100644
index 00000000000..75e2b0f9eba
--- /dev/null
+++ b/app/assets/javascripts/content_editor/services/build_serializer_config.js
@@ -0,0 +1,22 @@
+const buildSerializerConfig = (extensions = []) =>
+ extensions
+ .filter(({ serializer }) => serializer)
+ .reduce(
+ (serializers, { serializer, tiptapExtension: { name, type } }) => {
+ const collection = `${type}s`;
+
+ return {
+ ...serializers,
+ [collection]: {
+ ...serializers[collection],
+ [name]: serializer,
+ },
+ };
+ },
+ {
+ nodes: {},
+ marks: {},
+ },
+ );
+
+export default buildSerializerConfig;