# hyperz111/ntcrep architecture

> Architecture diagram of the GitHub repository hyperz111/ntcrep, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/hyperz111/ntcrep
- Repository: https://github.com/hyperz111/ntcrep

## Overview

ntcrep is a small `node:test` coverage reporter. Its workflow consumes coverage events, converts their line-based data to Istanbul’s structure, then creates and executes a selected Istanbul report in the configured output directory. The conversion and reporting calls are visible in `src/index.js` and `src/to-istanbul.js`; the runner-to-reporter and generated-report workflow are documented in the README.

Main entry points: [`src/index.js`](https://github.com/hyperz111/ntcrep/blob/main/src/index.js) (Reporter transform), [`src/to-istanbul.js`](https://github.com/hyperz111/ntcrep/blob/main/src/to-istanbul.js) (Istanbul converter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_input["Coverage input"]
  node_reporter["Reporter transform<br/>[index.js]"]
end

subgraph group_conversion["Coverage conversion"]
  node_converter["Istanbul converter<br/>[to-istanbul.js]"]
end

subgraph group_reporting["Report generation"]
  node_coverage_map["Istanbul coverage map"]
  node_report_context["Report context"]
  node_report_engine["Istanbul report"]
  node_output["Report directory"]
end

node_runner(("node:test runner"))

node_runner -->|"sends coverage events"| node_reporter
node_reporter -->|"converts coverage"| node_converter
node_reporter -->|"creates from data"| node_coverage_map
node_reporter -->|"creates context"| node_report_context
node_reporter -->|"executes report"| node_report_engine
node_report_engine -->|"writes report"| node_output

click node_reporter "https://github.com/hyperz111/ntcrep/blob/main/src/index.js"
click node_converter "https://github.com/hyperz111/ntcrep/blob/main/src/to-istanbul.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_reporter toneBlue
class node_converter toneAmber
class node_coverage_map,node_report_context,node_report_engine,node_output toneMint
class node_runner toneIndigo
```

## Components

### Coverage input

- [Reporter transform](https://github.com/hyperz111/ntcrep/blob/main/src/index.js): `src/index.js`

### Coverage conversion

- [Istanbul converter](https://github.com/hyperz111/ntcrep/blob/main/src/to-istanbul.js): `src/to-istanbul.js`

### Report generation

- **Istanbul coverage map**
- **Report context**
- **Istanbul report**
- **Report directory**

### Other components

- **node:test runner**

## Connections

- node:test runner → Reporter transform: sends coverage events (evidence: `README.md`)
- Reporter transform → Istanbul converter: converts coverage (evidence: `src/index.js`)
- Reporter transform → Istanbul coverage map: creates from data (evidence: `src/index.js`)
- Reporter transform → Report context: creates context (evidence: `src/index.js`)
- Reporter transform → Istanbul report: executes report (evidence: `src/index.js`)
- Istanbul report → Report directory: writes report (evidence: `README.md`)
