Package structure
Package structure
@muze-nl/metro is the beginner-friendly package. It re-exports the core, middleware, API helpers, tracing, hash parameter helpers, and formdata helper, and its browser bundle sets globalThis.metro.
Use smaller packages when you know the boundary you want:
| Package | Main exports | Documentation |
|---|---|---|
@muze-nl/metro | default metro, core exports, mw, trace, hashParams, formdata, api, jsonApi | combined package |
@muze-nl/metro-core | client, Client, request, response, url, metroError, deepClone | core |
@muze-nl/metro-api | API, JsonAPI, api, jsonApi | API helpers |
@muze-nl/metro-middleware | json, thrower, getdata, retry, timeout, abort, backoff, echoMock, errorMock | middleware |
@muze-nl/metro-trace | add, delete, clear, group, graph, localConsole, GraphTracer | trace |
@muze-nl/metro-hashparams | parse, append, clear | hash params |
@muze-nl/metro-formdata | formdata | formdata |
@muze-nl/metro-oauth2 | oauth2mw, OAuth helpers, dpopmw, stores, popup helpers | OAuth2 |
@muze-nl/metro-oidc | oidcmw, discover, register, idToken, idTokenClaims | OIDC |
@muze-nl/metro-oldm | default oldmmw | OLDM |
Rule of thumb
Start with @muze-nl/metro. Move to package-specific imports when you have a reason: smaller browser bundles, isolated tests, clearer package ownership, or code that should not depend on beginner convenience exports.