• Decoder for recursive data structures.

    Type Parameters

    • T

    Parameters

    • mkDecoder: () => Decoder<T>

      A function that returns a decoder

    Returns Decoder<T>

    A decoder that can handle recursive data structures

    interface Tree {
    value: number;
    children?: Tree[];
    }

    const treeDecoder = JsonDecoder.lazy(() =>
    JsonDecoder.object<Tree>(
    {
    value: JsonDecoder.number(),
    children: JsonDecoder.optional(JsonDecoder.array(treeDecoder))
    },
    'Tree'
    )
    );