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

stryker-config-nick2bad4u

v2.0.0

Published

Shared StrykerJS configuration for TypeScript projects tested with Vitest.

Downloads

321

Readme

stryker-config-nick2bad4u

Continuous Integration

Shared StrykerJS configuration for TypeScript projects tested with Vitest.

The default is directly runnable from node_modules, while the typed factory supports consumer-owned mutation globs, TypeScript projects, Vitest configs, thresholds, and reporter policy.

Install

Keep the Stryker packages on the same version:

npm install --save-dev @stryker-mutator/core @stryker-mutator/typescript-checker @stryker-mutator/vitest-runner stryker-config-nick2bad4u typescript@^6.0.3 vitest

This package targets Stryker 10 and keeps its public typescript peer on version 6. Stryker 10's TypeScript 7 support is still experimental, so this shared release does not broaden its stable consumer contract yet.

Temporary qs security override

@stryker-mutator/[email protected] selects [email protected], which hard-pins [email protected]. The root override keeps that external path on the API-compatible security patch [email protected]. Remove the override once Stryker permits [email protected] or a compatible 2.x release that depends on [email protected] or later; verify the resolved path with npm explain qs before removal.

Direct usage

{
 "scripts": {
  "test:stryker": "stryker run node_modules/stryker-config-nick2bad4u/stryker.config.mjs"
 }
}

Stryker treats the positional argument after run as the config file. Relative globs and paths resolve from the consumer working directory.

Presets

The package keeps the existing default preset and provides two opt-in variants:

| Preset | Use | Policy | | --------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | default | Normal mutation runs | TypeScript checker, static mutants, and all Vitest tests | | fast | Local iteration only | Skips static mutants and compile-error checking, disables mutation-time type checks, and enables Vitest related-test selection | | strict | Release or scheduled runs | Uses the slower, maximum-accuracy TypeScript checker strategy |

The fast preset deliberately does less work and can miss static or compile-error mutants. Do not use it as a release mutation gate.

Each preset has a directly runnable config file:

{
 "scripts": {
  "test:stryker": "stryker run node_modules/stryker-config-nick2bad4u/stryker.config.mjs",
  "test:stryker:fast": "stryker run node_modules/stryker-config-nick2bad4u/presets/stryker.fast.config.mjs",
  "test:stryker:strict": "stryker run node_modules/stryker-config-nick2bad4u/presets/stryker.strict.config.mjs"
 }
}

Customized usage

Create a small consumer-owned stryker.config.mjs:

import { createStrykerConfig } from "stryker-config-nick2bad4u";

export default createStrykerConfig({
 mutate: ["src/**/*.ts", "!src/**/*.d.ts"],
 tsconfigFile: "tsconfig.build.json",
 vitest: {
  configFile: "./vitest.stryker.config.ts",
  related: false,
 },
});

Known nested option objects are merged. Arrays replace the shared defaults.

To customize a named preset, use the typed preset factory:

import { createStrykerPreset } from "stryker-config-nick2bad4u";

export default createStrykerPreset("strict", {
 mutate: ["packages/core/src/**/*.ts"],
 vitest: {
  configFile: "./vitest.stryker.config.ts",
  dir: "packages/core",
 },
});

Programmatic consumers may also import the fresh factory outputs strykerConfig, strykerFastConfig, strykerStrictConfig, or the strykerPresets record. The executable subpath exports are stryker-config-nick2bad4u/stryker.config.mjs, stryker-config-nick2bad4u/presets/fast, and stryker-config-nick2bad4u/presets/strict.

Policy

  • The dashboard reporter is enabled only when STRYKER_DASHBOARD_API_KEY is present. Stryker infers project and version in supported CI environments.
  • STRYKER_CONCURRENCY accepts an explicit positive worker count. Otherwise the default is 2 in CI and 12 locally.
  • Consumer overrides are applied after preset policy. Known nested objects are merged, while arrays replace preset arrays.
  • Dashboard full reports include source and mutant details; use the reporter only when that upload is intended.
  • The stale @stryker-ignorer/console-all integration is not a default because its current release depends on the Stryker 8 API while this package targets Stryker 10.

Validation

npm run release:verify