UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

35 lines (33 loc) 1.24 kB
import { asTree } from "./asTree.js"; //#region src/richtext/serialize.ts /** * Serializes a rich text field with a given serializer. * * @remarks * This is a low-level helper mainly intended to be used by higher-level * packages. Most users aren't expected to use this function directly. * * @typeParam SerializerReturnType - Return type of the serializer. * * @param richTextField - A rich text field from Prismic. * @param serializer - A function serializer to apply. * * @returns An array of serialized nodes. * * @see Learn how to work with rich text fields: {@link https://prismic.io/docs/fields/rich-text} */ const serialize = (richTextField, serializer) => { return serializeTreeNodes(asTree(richTextField).children, serializer); }; const serializeTreeNodes = (nodes, serializer) => { const serializedTreeNodes = []; for (let i = 0; i < nodes.length; i++) { const treeNode = nodes[i]; const serializedTreeNode = serializer(treeNode.type, treeNode.node, treeNode.text, serializeTreeNodes(treeNode.children, serializer), treeNode.key); if (serializedTreeNode != null) serializedTreeNodes.push(serializedTreeNode); } return serializedTreeNodes; }; //#endregion export { serialize }; //# sourceMappingURL=serialize.js.map