npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@voxpelli/tstyche-reporters

v1.1.0

Published

Custom TSTyche reporters with Mocha-style and dot-style output, featuring environment-controlled Markdown/CLI dual-mode formatting

Readme

@voxpelli/tstyche-reporters

Custom TSTyche reporters with Mocha-style and dot-style output, featuring environment-controlled Markdown/CLI dual-mode formatting.

npm version npm downloads neostandard javascript style Module type: ESM Types in JS Follow @voxpelli@mastodon.social

Features

  • 🎨 Dual-mode output – Controlled via environment variable for CLI (colors/symbols) vs Markdown (emoji)
  • 🔧 Environment control – Set TSTYCHE_REPORTERS_MARKDOWN=true to enable Markdown output
  • 📊 Two reporter styles – Mocha-style hierarchical output or compact dot notation
  • 🔄 Multi-version support – Displays TypeScript version headers when testing against multiple compiler versions
  • Streaming output – Tests are printed as they execute, not buffered
  • 🧩 Extensible base class – Create your own custom reporters

Installation

npm install @voxpelli/tstyche-reporters

Usage

Mocha Reporter

Hierarchical, readable test output with indented describe blocks:

npx tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary

Or in tstyche.config.json:

{
  "reporters": ["./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js", "summary"]
}

CLI Output:

# uses TypeScript 5.8.3 with ./tsconfig.json

## MyComponent
  ✔ should accept valid props
  ✔ should reject invalid props
  ✖ should handle edge case

## AnotherComponent
  ✔ should work correctly

Markdown Output:

# uses TypeScript 5.8.3 with ./tsconfig.json

## MyComponent
:white_check_mark: should accept valid props
:white_check_mark: should reject invalid props
:stop_sign: should handle edge case

## AnotherComponent
:white_check_mark: should work correctly

Dot Reporter

Compact dot-style output, ideal for multi-version test runs:

npx tstyche --target '5.4 || 5.8 || next' --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-dot-reporter.js,summary

Output:

# uses TypeScript 5.4.5 with ./tsconfig.json
Error: Invalid configuration...
F.F..F.F.F.F.F.F......................
# uses TypeScript 5.8.3 with ./tsconfig.json
........................................................
# uses TypeScript 5.9.3 with ./tsconfig.json
........................................................
  • . = Pass
  • F = Fail
  • Lines wrap at 80 characters

API

TstycheMochaReporter

Mocha-style hierarchical reporter with streaming output.

import { TstycheMochaReporter } from '@voxpelli/tstyche-reporters';

Features

  • Hierarchical output with properly indented describe blocks
  • Compiler version headers when TypeScript version changes
  • Automatic CLI/Markdown mode switching
  • Symbol handling: ✔/✖ in CLI, :white_check_mark:/:stop_sign: in Markdown

TstycheDotReporter

Compact dot-style reporter optimized for multi-version runs.

import { TstycheDotReporter } from '@voxpelli/tstyche-reporters';

Features

  • One character per test (. = pass, F = fail)
  • Compiler version headers between different TypeScript versions
  • 80-character line wrapping
  • Minimal output for quick visual scanning

TstycheBaseReporter

Abstract base class for creating custom TSTyche reporters.

import { TstycheBaseReporter } from '@voxpelli/tstyche-reporters';

class MyCustomReporter extends TstycheBaseReporter {
  _onTestPass(payload) {
    // Custom pass handling
  }

  _onTestFail(payload) {
    // Custom fail handling
  }

  _onRunEnd(payload) {
    // Custom run end handling
  }
}

export default MyCustomReporter;

Constructor

new TstycheBaseReporter(resolvedConfig: ResolvedConfig)
  • resolvedConfig – TSTyche's resolved configuration object

Protected Properties

| Property | Type | Description | |----------|------|-------------| | resolvedConfig | ResolvedConfig | TSTyche configuration | | format | MarkdownOrChalk | Dual-mode formatter instance | | currentCompilerVersion | string \| undefined | Current TypeScript version being tested | | lastShownCompilerVersion | string \| undefined | Last version header printed |

Abstract Methods (must override)

| Method | Parameters | Description | |--------|------------|-------------| | _onTestPass | payload: TstycheEventPayload<'test:pass'> | Handle passing test | | _onTestFail | payload: TstycheEventPayload<'test:fail'> | Handle failing test | | _onRunEnd | payload: TstycheEventPayload<'run:end'> | Handle run completion |

Optional Override Methods

| Method | Parameters | Description | |--------|------------|-------------| | _onRunStart | payload | Handle run start (resets state) | | _onProjectUses | payload | Handle compiler version change | | _onFileStart | payload | Handle file start | | _onDescribeStart | payload | Handle describe block start | | _onDescribeEnd | payload | Handle describe block end | | _onError | reporterEvent | Handle error events | | _beforePrintCompilerVersion | – | Hook before version header | | _onNonImplementedEvent | reporterEvent | Handle unimplemented events |

Utility Methods

| Method | Parameters | Returns | Description | |--------|------------|---------|-------------| | _formatDiagnostic | diagnostic: Diagnostic | string | Format TSTyche/TypeScript diagnostic | | _printErrors | payload | void | Print error diagnostics | | _printCompilerVersion | – | void | Print TypeScript version header |

Type Exports

import type {
  TstycheEvent,
  TstycheEventPayload,
  TstycheErrorEvents,
  TstycheNonImplementedEvents,
} from '@voxpelli/tstyche-reporters';

Output Mode Control

The reporters support two output modes:

  • CLI mode (default): Uses ANSI colors, terminal symbols (✔/✖), and chalk formatting
  • Markdown mode: Uses plain text with emoji symbols (:white_check_mark:/:stop_sign:) and markdown formatting

To enable Markdown mode, set the environment variable:

export TSTYCHE_REPORTERS_MARKDOWN=true
npx tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary

Or inline:

TSTYCHE_REPORTERS_MARKDOWN=true npx tstyche --reporters ./node_modules/@voxpelli/tstyche-reporters/lib/tstyche-mocha-reporter.js,summary

Related Projects