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