# `NPM.FileSize`
[🔗](https://github.com/elixir-volt/npm_ex/blob/v0.7.4/lib/npm/file_size.ex#L1)

Analyzes file sizes within installed packages.

Identifies large files, breaks down by extension, and helps
optimize node_modules size.

# `analyze`

```elixir
@spec analyze(String.t()) :: [%{path: String.t(), size: non_neg_integer()}]
```

Analyzes files in a package directory.

# `by_extension`

```elixir
@spec by_extension(String.t()) :: %{required(String.t()) =&gt; non_neg_integer()}
```

Groups file sizes by extension.

# `format_size`

```elixir
@spec format_size(non_neg_integer()) :: String.t()
```

Formats a byte size to human-readable string.

# `largest`

```elixir
@spec largest(String.t(), non_neg_integer()) :: [
  %{path: String.t(), size: non_neg_integer()}
]
```

Returns the N largest files in a package.

# `total`

```elixir
@spec total(String.t()) :: non_neg_integer()
```

Returns total size of all files in a package.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
