Skip to main content

One change. An unchanged caller in another repo

A public, deliberately seeded integration test shows how Yanib linked a breaking p-map change to its p-filter consumer. No Yanib account or repository connection is needed to inspect it.

Follow the evidence

export default async function pMap(
  iterable,
  mapper,
+ operationName,
  { concurrency = Infinity, ...options } = {},
)

The change

A required operationName argument is inserted before options. This changes the public calling convention, not just this function’s implementation.

Abbreviated diff for explanation; the exact source is linked below.

Inspect the original in GitHub

User-controlled annotated walkthrough, not a recording of a live run. Captions stay visible. You can inspect the original source at each step.

What needs a decision

p-filter still passes an options object as the third argument. The changed p-map function expects a string there and throws before doing the work.

Recommended direction

Preserve the existing options position, or coordinate a breaking version and update its consumers. Making only the type declaration optional is not enough.

How to verify

Keep a regression test for pMap(iterable, mapper, {concurrency: 2}) and run the consumer’s tests against the changed package.

Source and provenance

Inspected
September 4, 2026; public repositories and review verified through GitHub.
Changed source
p-map · d1597f78d196302d32c4758b8fba0a3279ba209e
Affected consumer
p-filter · aafbe51d4b53ba9c45c264ae75ba8bf7467b028a

The canary forks use Sindre Sorhus’s p-map and p-filter projects. Source remains available under each repository’s license: p-map license and p-filter license.