Cut the first vertical slice through both layers: a runnable `kitchen view <file>` that reads a Recipe File, parses it, and renders it styled to the terminal. @kitchen-md/core exposes a pure, total `parse(input): DocumentAST` built on a minimal remark pipeline (parse + frontmatter) with a translation layer to core's own AST types — frontmatter passthrough, HeadingBlock, ParagraphBlock, and TextNode. remark types never leak into the public API. @kitchen-md/bin's `view` subcommand (commander) reads the file and hands the DocumentAST to a pure `render(ast): string` (chalk, ANSI auto-suppressed off a TTY). Fallible file I/O is modelled as a neverthrow Result over a tagged-union CliError, matched at the boundary: stdout on success, stderr and exit 1 on failure. The command functions sit beside the import.meta.main-guarded CLI entry so they are testable in-process. Tests follow ADR 0009's tiers — unit (parse, render), integration (the view command's Result), and e2e (the binary as a subprocess) — with coverage, a path-scoped test-report generator, and a prose fixture rounding out the tooling. ADR 0008 records errors-as-values at the CLI boundary; ADR 0009 records the testing tiers.
24 lines
525 B
JSON
24 lines
525 B
JSON
{
|
|
"name": "kitchen-md",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"workspaces": [
|
|
"packages/core",
|
|
"packages/bin"
|
|
],
|
|
"scripts": {
|
|
"test": "bun test",
|
|
"test:coverage": "bun test --coverage",
|
|
"test:report": "bun run scripts/test-report.ts",
|
|
"lint": "biome check .",
|
|
"format": "biome check --write .",
|
|
"postinstall": "bun2nix -o bun.nix"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^2.5.3",
|
|
"bun-types": "latest",
|
|
"bun2nix": "^2.1.2",
|
|
"fast-xml-parser": "^5.10.1"
|
|
}
|
|
}
|