Built from main at 1d902a0 on 2026-11-14

JavaScript/TypeScript

Recognised by .js, .ts and related sources, package.json or deno.json. The package scripts CI runs (npm test, npm run lint, Deno tasks) count as CI configuration.

tests-run

*.test.*, *.spec.*, *_test.* or __tests__/ files run by jest, vitest, mocha, ava, node --test, deno test, bun test, playwright or npm test.

fuzz-testing

Jazzer.js fuzz targets (an exported fuzz function, or it.fuzz( tests, in .js, .mjs, .cjs or .ts files), run by a CI step npx jazzer <target> or by jest with JAZZER_FUZZ=1 set in the step or job environment. fast-check tests alone warn: they are property-based tests, not fuzz targets.

coverage

c8, nyc, Jest (--coverage, or collectCoverage: true in the configuration it reads, or package.json's jest), Vitest (--coverage, or coverage enabled: true in the configuration it reads), deno test --coverage or node --test --experimental-test-coverage, run by CI directly, through npx and the other package runners, or through the package scripts it runs. bun test --coverage counts lines only.

platform-matrix

The toolchains are Node.js, Deno or Bun versions.

compiler-warnings

A linter runs: eslint, biome lint / biome ci, or deno lint.

warnings-as-errors

A lint warning fails CI: eslint --max-warnings 0, biome ci or --error-on-warnings, or deno lint.

type-checking

tsc or vue-tsc (JavaScript with checkJs), or deno check / deno test, also through the package scripts CI runs. Strict mode is a bonus: "strict": true or @tsconfig/strictest in a tsconfig.json, or Deno, strict by default.

mutation-testing

StrykerJS (stryker run, also as npx stryker run or a package script; settings in stryker.config.json, .js, .mjs or .cjs, or stryker.conf.json or .js). stryker run --incremental counts as running on the changes only.

code-formatting

prettier --check (or -l; settings in a .prettierrc*, prettier.config.* or the prettier key of package.json), biome format, biome check or biome ci (without --write), deno fmt --check, dprint check or oxfmt --check, in CI or the package scripts and Deno tasks it runs. They have a default style, so CI enforcement alone passes.

function-limits

lizard runs in CI with a length limit, or eslint runs with max-lines-per-function on (not "off" or 0) in its configuration. The rule on while CI does not run eslint warns.

static-analysis

eslint (or next lint), oxlint, biome lint / check / ci or deno lint, in CI, a pre-commit hook CI runs, or the package scripts CI runs.

security-scanning

eslint with eslint-plugin-security (or @microsoft/eslint-plugin-sdl) in its configuration. In CI, where the tool runs (a setting alone, which nothing CI runs reads, does not count); CodeQL, GitLab SAST or semgrep count too.

dependency-management

Dependencies declared in package.json (or imports in deno.json) are locked by a committed package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, yarn.lock, bun.lock, bun.lockb or deno.lock, libraries included.

dependency-audit

npm audit (not npm audit signatures), pnpm audit, yarn npm audit / yarn audit or bun audit.

license

license in package.json.

committed-artifacts

node_modules/, a top-level coverage/ and *.tsbuildinfo (not dist/, which a JavaScript GitHub Action commits).

vcs-ignore

node_modules/.