Type alias CompactedJsonValue<T>

CompactedJsonValue<T>: [T] extends [LiveMap<infer U>]
    ? {
        [K in keyof U]: CompactedJsonValue<U[K]>
    } | ObjectIdReference
    : [T] extends [LiveMap<infer U> | undefined]
        ? {
            [K in keyof U]: CompactedJsonValue<U[K]>
        } | ObjectIdReference | undefined
        : [T] extends [LiveCounter]
            ? number
            : [T] extends [LiveCounter | undefined]
                ? number | undefined
                : [T] extends [ArrayBuffer]
                    ? string
                    : [T] extends [ArrayBuffer | undefined]
                        ? string | undefined
                        : [T] extends [ArrayBufferView]
                            ? string
                            : [T] extends [ArrayBufferView | undefined]
                                ? string | undefined
                                : [T] extends [Primitive]
                                    ? T
                                    : [T] extends [Primitive | undefined]
                                        ? T
                                        : any

CompactedJsonValue transforms LiveObject types into JSON-serializable equivalents. LiveMap becomes an object, LiveCounter becomes a number, binary values become base64-encoded strings, other primitives remain unchanged.

Additionally, cyclic references are represented as { objectId: string } instead of in-memory pointers to same objects.

Type Parameters

Generated using TypeDoc