Interface SerDes<ValueT, SerializedT>

A serializer-deserializer

interface SerDes<ValueT, SerializedT extends JsonValue> {
    deserialize: (
        value: SerializedT,
    ) => TypeOrPromisedType<DeserializationResult<ValueT>>;
    isValueType: (value: any) => value is ValueT;
    serialize: (value: ValueT) => TypeOrPromisedType<SerializationResult>;
    serializedSchema: () => Schema<SerializedT>;
}

Type Parameters

Properties

deserialize: (
    value: SerializedT,
) => TypeOrPromisedType<DeserializationResult<ValueT>>

Deserialize (and validate) a value

isValueType: (value: any) => value is ValueT

Checks if the specified value is the expected type, which is checked before serialization is attempted

Serialize (and validate) a value

serializedSchema: () => Schema<SerializedT>

A schema for the serialized form, which is checked before deserialization is attempted