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

Health check for the npm installation.

Validates the project's npm setup by checking for common issues:
missing files, stale lockfiles, broken symlinks, etc.

# `check_result`

```elixir
@type check_result() :: %{
  name: String.t(),
  status: :ok | :warn | :error,
  message: String.t()
}
```

# `diagnose`

```elixir
@spec diagnose(String.t()) :: [check_result()]
```

Runs all health checks and returns results.

# `format_results`

```elixir
@spec format_results([check_result()]) :: String.t()
```

Formats check results for display.

# `healthy?`

```elixir
@spec healthy?(String.t()) :: boolean()
```

Returns true if all checks pass (no errors).

# `summary`

```elixir
@spec summary([check_result()]) :: %{
  ok: non_neg_integer(),
  warn: non_neg_integer(),
  error: non_neg_integer()
}
```

Returns a summary of check results.

---

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