chore(release): 1.0.7 - #75
Merged
Merged
Conversation
Runtime change: the four decorators no longer carry a `reflect-metadata` side-effect import, so `dist/` differs from 1.0.6 — the built bundle no longer references the package at all. The README gained what the fix makes necessary: the Quick Start now shows the `main.ts` entry point with `import 'reflect-metadata'` as its first line, and the peer matrix states that the polyfill belongs to the application. Naming it only as a peer was survivable while the library loaded it, and is not now.
There was a problem hiding this comment.
Pull request overview
Release prep for @bymax-one/nest-queue@1.0.7, documenting and packaging the prior runtime change that removes the library’s reflect-metadata side-effect import so the application owns the polyfill.
Changes:
- Bump package version to
1.0.7. - Update README to explicitly instruct consumers to install and import
reflect-metadatainmain.ts. - Add
1.0.7release notes and compare link to the changelog.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| README.md | Updates Quick Start and peer guidance so reflect-metadata is explicitly owned/imported by the application. |
| package.json | Bumps version to 1.0.7 for the release. |
| CHANGELOG.md | Adds the 1.0.7 entry documenting the runtime change and README updates, plus the compare link. |
…mple The example used top-level await. A default NestJS project compiles `main.ts` to CommonJS, where top-level await does not exist — so copying the snippet fails to compile, in the one example whose entire purpose is to be copied. It follows the `bootstrap()` shape the NestJS CLI generates, which works under both module systems.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this releases
The
reflect-metadatafix merged in #74, plus the documentation that fix makesnecessary.
This is a runtime change, not a documentation release.
dist/differs from 1.0.6:The functional difference is one line —
import 'reflect-metadata'is gone from thebundle. Everything else in the diff is bundler comments and three blank lines in the
declarations. The public surface is byte-identical, verified by comparing the
export { … }blocks of the published 1.0.6 bundle and this build.Why the library should not load the polyfill
reflect-metadatais global state the application initialises once. None of the othereight
@bymax-onelibraries imports it, and NestJS pulls it in regardless — measuredin a clean process:
The decorators are reachable only through the
.subpath, whose bundle imports@nestjs/commonon its first line, so the polyfill is present before any decoratorbody runs. Confirmed with a real consumer that never imports it itself:
It also contradicted this package's own
"sideEffects": false— a flag asserting nomodule has a side effect, on a package importing something whose entire purpose is one.
The measurable cost was in consumers' bundles: with the import present, esbuild inlines
the polyfill, taking a minimal bundle from 53 kB to 95 kB even when the application
had already loaded it.
Documentation
The fix removes a redundancy that was silently covering a missing
main.tsimport, sothe README now says what it previously left implicit:
main.tsentry point withimport 'reflect-metadata'first,and the install line includes the package.
IMPORTANTnote: the polyfill belongs to the application,this library never imports it, and NestJS brings it in too.
Previously
reflect-metadataappeared only as a row in the peer table — survivablewhile the library loaded it, not now.
Verification
typecheck·lint·size·check:exports·check:published·test:types·276 tests / 100% coverage ·
smoke— the gate that loads the built tarball froma real consumer in ESM and CJS, which is the exact path this change could have broken
·
npm publish --dry-runcompleting through to+ @bymax-one/nest-queue@1.0.7.After merge
git switch main && git pullfirst, thengit tag v1.0.7 && git push origin v1.0.7, sothe tag lands on the squash commit.