refactor: model bin errors as neverthrow Result values (task 0003)

Split the view command out of the entry point and make its failure a
value rather than an exception. index.ts is now scaffolding plus
dispatch; view.ts owns the behaviour, returning Result<string, ViewError>
(a plain-data tagged union) via neverthrow, with try/catch confined to a
readFile adapter. The entry point matches the Result at the boundary.

Because viewFile is a pure in-process function it is now unit-tested
directly (and counted by coverage), while the subprocess tests stay as
the end-to-end check. ADR 0008 records the errors-as-values convention.
This commit is contained in:
2026-07-28 21:21:23 -04:00
parent 313a5b60b7
commit ae542893da
7 changed files with 120 additions and 12 deletions

View File

@@ -14,6 +14,7 @@
"@kitchen-md/core": "workspace:*",
"chalk": "^5.6.2",
"commander": "^15.0.0",
"neverthrow": "^8.2.0",
"yaml": "^2.9.0"
}
}