defmodule NPM.FormatUtil do
@moduledoc """
Shared formatting utilities.
"""
@doc """
Formats a byte count as a human-readable string.
"""
@spec format_size(non_neg_integer()) :: String.t()
def format_size(bytes) when bytes < 1024, do: "#{bytes} B"
def format_size(bytes) when bytes < 1_048_576, do: "#{Float.round(bytes / 1024, 1)} KB"
def format_size(bytes) when bytes < 1_073_741_824, do: "#{Float.round(bytes / 1_048_576, 1)} MB"
def format_size(bytes), do: "#{Float.round(bytes / 1_073_741_824, 1)} GB"
end