# microsoft/reflect-metadata

Prototype for a Metadata Reflection API for ECMAScript

Repository: https://github.com/microsoft/reflect-metadata
Canonical: https://ross.abutalabs.com/products/reflect-metadata
Homepage: https://rbuckton.github.io/reflect-metadata
Language: TypeScript
License: Apache-2.0
License Family: permissive
Topics: metadata, decorator-metadata, javascript, typescript, reflection, proposal
Last push: 2026-08-24T15:52:21+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 8, longevity 100
- inputs: {"age_days": 4193, "days_push": 9, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3359, forks 191 (observed 2026-08-28T04:07:58.050753+00:00)

## What it is
A polyfill implementing the proposed ECMAScript Metadata Reflection API, adding metadata methods to the global Reflect object for use with TypeScript's legacy experimental decorators. It is now in maintenance mode since the proposal is no longer being standardized, but remains supported for legacy decorator projects.

## Use cases
- add metadata to classes for dependency injection
- runtime type assertions with decorators
- build composable metadata-producing decorators
- support legacy TypeScript experimentalDecorators projects
- reflection and mirroring of class metadata in JavaScript

## When to choose
- your project uses TypeScript legacy --experimentalDecorators and needs Reflect.metadata
- you maintain a DI framework or ORM that relies on decorator metadata
- you need a consistent metadata API across libraries on older runtimes

## When to avoid
- you are starting a new project with standard Stage 3 decorators and decorator metadata
- you need a standardized, future-proof metadata solution
- your runtime already supports native decorator metadata

## Facets
- artifact type: library
- maturity: maintenance
- function: middleware, developer-tools, plugin-system
- domain: developer-tools, web-development, programming-languages
- platform: browser, cross-platform
- tags: reflection, metadata, decorators, polyfill, dependency-injection, tc39-proposal, nodejs, javascript, typescript

## Member repositories
- microsoft/reflect-metadata (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:58.050753+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:40:53.256973+00:00, confidence not recorded.
  - readme: https://github.com/microsoft/reflect-metadata (fetched 2026-08-28T04:07:58.050753+00:00, sha afcb9a77ce33)
- Data as of 2026-08-30T08:39:29.467469+00:00.
