Coverage for lintro / utils / environment / node_info.py: 81%
16 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Node.js runtime information."""
3from __future__ import annotations
5from dataclasses import dataclass
8@dataclass
9class NodeInfo:
10 """Node.js runtime information."""
12 version: str | None
13 path: str | None
14 npm_version: str | None
15 bun_version: str | None
16 pnpm_version: str | None
18 @property
19 def section_title(self) -> str:
20 """Return the section title for display."""
21 return "Node.js"
23 def to_display_rows(self) -> list[tuple[str, str]]:
24 """Return label-value pairs for rendering."""
25 return [
26 ("Version", self.version or "(unknown)"),
27 ("Path", self.path or "(unknown)"),
28 ("npm", self.npm_version or "(not found)"),
29 ("bun", self.bun_version or "(not installed)"),
30 ("pnpm", self.pnpm_version or "(not installed)"),
31 ]
33 def is_available(self) -> bool:
34 """Return whether this section has data to display."""
35 return self.version is not None or self.path is not None