Prototype for a Metadata Reflection API for ECMAScript, exposed as the `reflect-metadata` package. Useful for projects using TypeScript legacy `--experimentalDecorators` to store and read metadata through an augmented global `Reflect` object, including `defineMetadata`, `getMetadata`, and related helpers. It also provides a “lite” build without internal polyfills.
Project status
- The repository appears to be largely dormant, with the last upstream push on 2024-03-29 and the most recent published package updates dating to 2023-12 (v0.2.1 on 2023-12-14). This suggests it is not actively maintained today (2026-08-12).
- Update cadence looks bursty rather than steady. There were multiple updates clustered in 2016 to 2018, and another cluster of updates in mid-December 2023, followed by a long gap with no further evidence of ongoing updates.
AI summary generated
Recent updates
v0.2.1
v0.2.1 includes a fix for a stack overflow crash related to the MetadataProvider.isProviderFor fallback path. The release notes also indicate the package version bump to v0.2.1. The code change focuses on how the fallback provider calls Reflect methods, plus a regression test for the crash scenario.
v0.2.0
This release (reflect-metadata v0.2.0) focuses on the /lite build by adding new exports and removing dynamic evaluation in that mode. The code changes confirm dynamic eval related helpers were deleted, but they also introduce a new hard requirement on globalThis that is not mentioned in the release notes.
Featuresv0.2.0-pre.0
This pre-release (0.2.0-pre.0) introduces new subpath exports for reflect-metadata: a /lite variant and a /no-conflict variant. The codebase was restructured to build and ship additional entry points (ReflectLite.js, ReflectNoConflict.js) and corresponding TypeScript declaration files. Release notes only mention the new exports, but the underlying packaging and typings structure also changed.
Featuresv0.1.14
reflect-metadata v0.1.14 includes a small change to how the Map/Set polyfill selection reads the REFLECT_METADATA_USE_MAP_POLYFILL flag, specifically to avoid Webpack inlining of process.env. The release notes also mention a variable-name fix, and the diff shows an associated correction in the documentation example.
v0.1.13
Release 0.1.13 contains no meaningful human-readable release notes beyond a changelog compare link. The diff shows mostly documentation/build/packaging adjustments plus a small TypeScript change in Reflect.ts, and a new test covering idempotency of the global Reflect shim.
v0.1.12
v0.1.12 is described as a patch release focused on bug fixes and test improvements. The release notes highlight fixes for metadata being erased when multiple toolchains are used, an error when coexisting with another Reflect polyfill (for example core-js/reflect), and issues when the library is redundantly installed, plus a critical loading problem from v0.1.11.
v0.1.11
Version v0.1.11 is described as a set of bug fixes plus test improvements for reflect-metadata, specifically addressing metadata loss when multiple bundles are used (karma/mocha/webpack), interoperability errors with other Reflect polyfills (for example core-js/reflect), and metadata being erased when the package is installed redundantly. The release notes also warn that this version has an issue preventing the library from being used, recommending 0.1.12+.
Breakingv0.1.10
v0.1.10 is primarily described as containing bug fixes and test improvements, specifically addressing Reflect.getMetadata returning undefined in IE11. The release notes also mention minor documentation cleanup by removing ES7 references.
v0.1.9
reflect-metadata v0.1.9 introduces internal refactoring and updates the project to use TypeScript 2.1.4. It also changes the runtime behavior of property decorator handling (issue #48) and adds new TypeScript declaration files and packaging changes for typings.
Breakingv0.1.8
No publisher release notes were provided for v0.1.8. The diff shows that this release primarily changes the TypeScript declaration setup for the library (introducing a new Reflect.d.ts and shrinking reflect-metadata.d.ts), plus minor README documentation additions. Runtime JavaScript changes appear to be limited to comment/example text.
Breaking