@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
35 lines (33 loc) • 1.27 kB
JavaScript
const require_asTree = require('./asTree.cjs');
//#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(require_asTree.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
exports.serialize = serialize;
//# sourceMappingURL=serialize.cjs.map