• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

boardgameio / boardgame.io / 29204914796
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 12 Jul 2026 07:00PM UTC
Jobs 1
Files 55
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Jul 2026 06:59PM UTC coverage: 100.0%. Remained the same
29204914796

push

github

web-flow
feat(packaging): add exports map and ESM server build (#1263)

boardgame.io predates Node's exports-map resolution: subpath imports
work only through generated proxy directories, which bundlers and the
CJS resolver understand but the Node ESM resolver does not. Any
"type": "module" project — the default for Vite-era tooling — fails
on import { Server } from 'boardgame.io/server' (#902, #1136, #1152),
and the docs still recommended the long-dead esm require hook (#844).

Changes:
- exports map covering the root, all 11 subpackages, ./server and
  ./package.json, with types/import/require conditions per entry.
  Legacy main/module/types fields and proxy dirs are kept for older
  resolvers, so existing consumers are unaffected.
- the server entry is now also built as ESM (its dependencies all
  ship ESM entry points or import cleanly from ESM).
- packages/main.js joins the dual-format build so the root export
  has format-correct files; dist/esm and dist/cjs gain package.json
  format markers, without which Node would parse them by the root
  package's implicit CJS type.
- integration test now smoke-tests Node ESM import and CJS require
  of the packed tarball, and runs publint (strict) plus
  arethetypeswrong (informational: attw crashes on this package's
  layout even for the published 0.50.2, so it cannot gate).
- docs no longer instruct users to install the esm shim.

Known caveat: a single .d.ts serves both import and require
conditions, so TS under nodenext treats the import types as
CJS-flavored. Benign for this API (named exports only); verified
with tsc against the packed tarball under both nodenext and bundler
resolution.

Closes #844. Fixes #1136.

1995 of 1995 branches covered (100.0%)

Branch coverage included in aggregate %.

2873 of 2873 relevant lines covered (100.0%)

26698.92 hits per line

Jobs
ID Job ID Ran Files Coverage
1 29204914796.1 12 Jul 2026 07:00PM UTC 110
100.0
GitHub Action Run
Source Files on build 29204914796
  • Tree
  • List 55
  • Changed 50
  • Source Changed 0
  • Coverage Changed 50
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29204914796
  • d99d5a4d on github
  • Prev Build on main (#29202051937)
  • Next Build on main (#29429635622)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc