Skip to content

abraham/reflection

Folders and files

NameName
Last commit message
Last commit date
Mar 8, 2025
Mar 3, 2025
Mar 14, 2020
Feb 19, 2022
Feb 19, 2022
Feb 19, 2022
Jul 23, 2018
Feb 19, 2022
Mar 8, 2025
Mar 8, 2025
Feb 6, 2023
Jun 1, 2020

Repository files navigation

Version Status Build Status npm bundle size (minified + gzip) Coverage Status

Reflection

Lightweight ES Module implementation of reflect-metadata to work with TypeScript's experimental decorator support.

Why?

The main reason for this library is to provide a much smaller implementation that can be included as a module.

  • ES module
    • reflection can be loaded with <script type="module" src="..."></script>
  • Size (uncompressed)

Read about how to drop 20K from your production Angular app by switching to this.

Install

npm install @abraham/reflection

Usage

import '@abraham/reflection';
Reflect.defineMetadata(metadataKey, metadataValue, target);

You can also import Reflection:

import { Reflection as Reflect } from '@abraham/reflection';
Reflect.defineMetadata(metadataKey, metadataValue, target);

API

Reflection does not currently cover the complete API surface of reflect-metadata. The following methods are available:

Reflect.decorate(...);
Reflect.defineMetadata(...);
Reflect.getMetadata(...);
Reflect.hasMetadata(...);
Reflect.getOwnMetadata(...);
Reflect.hasOwnMetadata(...);
Reflect.metadata(...);