CodeVetter · Repo Unpack · Feature catalog
stryker-mutator/stryker-js
The main user surfaces are CLI commands, a programmatic mutation run, reports, and a mutation-server protocol. Users can select files and source ranges, choose framework integrations, suppress mutants, and control baseline or incremental execution. Reporter choices cover terminal feedback, local artifacts, and dashboard publication. Framework UI examples are integration targets rather than the central product interface.
- stryker run accepts a configuration path and invokes Stryker.runMutationTest; stryker init creates an initializer and disposes its injector after initialization.
- serve supports stdio or socket channels, socket address/port options, and forwarded run options; runServer remains a deprecated socket-server command.
- Project selection supports mutation globs, exclusions, explicit test-file patterns, and line/column mutation ranges; unmatched explicit test patterns produce warnings.
- Language dispatch recognizes JS/JSX/MJS/CJS, TS/MTS/CTS, TSX, Vue/HTML/HTM, and Svelte; unknown extensions produce a parser-registration error.
- Workspace integrations include Cucumber, Jasmine, Jest, Karma, Mocha, TAP, Vitest, and TypeScript checking; the built-in command runner defaults conceptually to npm test and rejects explicit testFiles.
- Mutants can be suppressed through excludedMutations, Stryker disable comments, or Ignore plugins; suppressed mutants remain visible in reports without contributing to the score.
- Execution supports dryRunOnly, allowEmpty, coverage-based test selection, ignoreStatic, and incremental result reuse; force prevents reuse of existing mutant statuses.
- Built-in reporters include clear-text, progress, append-only progress, dots, event-recorder, HTML, JSON, and dashboard; dashboard reportType selects a full report or mutation score, and thresholds.break can fail the run.