UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

31 lines (27 loc) 922 B
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 = <SerializerReturnType>( ...serializers: (RichTextFunctionSerializer<SerializerReturnType> | undefined)[] ): RichTextFunctionSerializer<SerializerReturnType> => { 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 } } } } }