Byte Size Parser (cli/parse-bytes.ts)

bitterbot-desktop · src/cli/parse-bytes.ts · typescript · MIT
dev-tools, cli, tag:utility, tag:math

Converts human-readable byte strings like '10mb' or '2gb' into numeric byte values. Use this for CLI tools requiring memory or storage configuration inputs.

// Source: https://github.com/Bitterbot-AI/bitterbot-desktop | License: MIT | Copyright 2025-2026 Victor Michael Gil / Bitterbot AI
// Provided via justclaw.it.com; keep this notice with the code.
export type BytesParseOptions = {
  defaultUnit?: "b" | "kb" | "mb" | "gb" | "tb";
};

const UNIT_MULTIPLIERS: Record<string, number> = {
  b: 1,
  kb: 1024,
  k: 1024,
  mb: 1024 ** 2,
  m: 1024 ** 2,
  gb: 1024 ** 3,
  g: 1024 ** 3,
  tb: 1024 ** 4,
  t: 1024 ** 4,
};

export function parseByteSize(raw: string, opts?: BytesParseOptions): number {
  const trimmed = String(raw ?? "")
    .trim()
    .toLowerCase();
  if (!trimmed) {
    throw new Error("invalid byte size (empty)");
  }

  const m = /^(\d+(?:\.\d+)?)([a-z]+)?$/.exec(trimmed);
  if (!m) {
    throw new Error(`invalid byte size: ${r

... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key