import type { RichTextFunctionSerializer } from "./types" /** * Takes an array of serializers and returns a serializer applying provided serializers sequentially * until a result is returned * * @remarks * This is a low level helper mainly intended to be used by higher level packages Most users * aren't expected to this function directly * @typeParam SerializerReturnType - Return type of serializers * @param serializers - Serializers to compose * @returns Composed serializer */ export const composeSerializers = ( ...serializers: (RichTextFunctionSerializer | undefined)[] ): RichTextFunctionSerializer => { return (...args) => { for (let i = 0; i < serializers.length; i++) { const serializer = serializers[i] if (serializer) { const res = serializer(...args) if (res != null) { return res } } } } }