import * as METADATA_KEY from "../constants/metadata_keys" ; import { interfaces } from "../interfaces/interfaces" ; class MetadataReader implements interfaces . MetadataReader { public getConstructorMetadata ( constructorFunc ) { const compilerGeneratedMetadata = Reflect . getMetadata ( METADATA_KEY . PARAM_TYPES , constructorFunc ) ; const userGeneratedMetadata = Reflect . getMetadata ( METADATA_KEY . TAGGED , constructorFunc ) ; return { compilerGeneratedMetadata , userGeneratedMetadata : userGeneratedMetadata || { } } ; } public getPropertiesMetadata ( constructorFunc ) { const userGeneratedMetadata = Reflect . getMetadata ( METADATA_KEY . TAGGED_PROP , constructorFunc ) || [ ] ; return userGeneratedMetadata ; } } export { MetadataReader } ;