RpcElixir.UnixMillis (elixir_ts_rpc v0.0.1)

Copy Markdown View Source

Built-in branded-number custom type: a DateTime crossing the wire as epoch milliseconds. Emits the TypeScript brand EpochMillis (a number & { readonly __brand: "EpochMillis" }), so callers can't accidentally pass a bare number where an instant is expected.

Use per-field as RpcElixir.UnixMillis.t(), or map every DateTime in a router to it via use RpcElixir.Router, wire_aliases: [{DateTime, RpcElixir.UnixMillis}].

Summary

Functions

Deserializes integer epoch milliseconds to {:ok, DateTime.t()} | {:error, atom}.

Serializes a DateTime to integer epoch milliseconds.

TypeScript brand name emitted for this type.

Wire format: a JSON integer (epoch milliseconds).

Types

t()

@type t() :: DateTime.t()

Functions

deserialize(ms)

Deserializes integer epoch milliseconds to {:ok, DateTime.t()} | {:error, atom}.

serialize(dt)

Serializes a DateTime to integer epoch milliseconds.

ts_type()

TypeScript brand name emitted for this type.

wire_spec()

Wire format: a JSON integer (epoch milliseconds).