API reference@evolu/commonBytes › ByteLength

const ByteLength: brand(
  "ByteLength",
  NonNegativeInt,
  (value) =>
    Object.is(value, -0)
      ? err<ByteLengthError>({ type: "ByteLength", value })
      : ok(),
  () => "The value -0 is not a byte length. Use 0 instead.",
);

Defined in: packages/common/src/Bytes.ts:1424

Non-negative safe integer number of bytes.

The canonical unit for sizes, as milliseconds are for time. APIs accept ByteSize and normalize it with byteSizeToByteLength. Parse text such as an environment variable with ByteLengthFromString. Negative zero is rejected so zero has one canonical representation.

Example

import { assertErr, assertOk, ByteLength } from "@evolu/common";

assertOk(ByteLength.fromUnknown(0), 0);
assertOk(ByteLength.fromUnknown(1024), 1024);
assertErr(ByteLength.fromUnknown(-0));
assertErr(ByteLength.fromUnknown(-1));
assertErr(ByteLength.fromUnknown(1.5));