Skip to content

Repository files navigation

NPM versionBuild Status

Slicky/Reflection

Helpers for working with typescript's reflection.

Installation

$ npm install @slicky/reflection

Class annotations

Annotation definition:

import{makeClassDecorator}from'@slicky/reflection';classNamedClassDefinition{constructor(name: string){ ... }}letNamedClass=makeClassDecorator(NamedClassDefinition);

Usage:

import{getAnnotations,findAnnotation}from'@slicky/reflection';
@NamedClass('Test')classTestClass{ ... }// get all annotations on class:getAnnotations(TestClass);// finding annotation for class:findAnnotation(TestClass,NamedClassDefinition);

##Properties metadata

Properties metadata can be used also for methods and accessors.

Metadata definition:

import{makePropertyDecorator}from'@slicky/reflection';classNamedPropertyDefinition{constructor(name: string){ ... }}letNamedProperty=makePropertyDecorator(NamedPropertyDefinition);

Usage:

import{getPropertiesMetadata,getPropertyMetadata,findPropertyMetadata}from'@slicky/reflection';classTestClass{
@NamedProperty('test')prop;}// get all properties on class:getPropertiesMetadata(TestClass);// get all metadata for property "prop":getPropertyMetadata(TestClass,'prop');// finding metadata for property "prop":findPropertyMetadata(TestClass,NamedPropertyDefinition,'prop');

Parameters metadata

Metadata definition:

import{makeParameterDecorator}from'@slicky/reflection';classNamedParameterDefinition{constructor(name: string){ ... }}letNamedParameter=makeParameterDecorator(NamedParameterDefinition);

Usage:

import{getParametersMetadata,findParameterMetadata}from'@slicky/reflection';classTestClass{constructor(@NamedParameter('param')arg){ ... }method(arg1, @NamedParameter('param2')arg2){ ... }}// get all parameters in constructor:getParametersMetadata(TestClass);// get all parameters in method "method":getParametersMetadata(TestClass,'method');// finding metadata for first argument in constructor:findParameterMetadata(TestClass,NamedParameterDefinition,0);// finding metadata for second argument in method "method":findParameterMetadata(TestClass,NamedParameterDefinition,1,'method');

About

Helpers for working with typescript's reflection

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages