UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

37 lines (33 loc) 936 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 } } } } }