UNPKG

nestjs-auto-reflect-metadata-emitter

Version:

[![Actions Status](https://github.com/Codibre/nestjs-auto-reflect-metadata-emitter/workflows/build/badge.svg)](https://github.com/Codibre/nestjs-auto-reflect-metadata-emitter/actions) [![Actions Status](https://github.com/Codibre/nestjs-auto-reflect-metad

38 lines (37 loc) 1.17 kB
export type ClassType<T extends object = object> = abstract new (...args: any[]) => T; export type Key<T extends object = object> = (keyof T | keyof ClassType<T>) & (string | symbol); export interface ModifiersMetadata { public: boolean; readonly: boolean; static: boolean; abstract: boolean; accessor: boolean; async: boolean; const: boolean; override: boolean; private: boolean; protected: boolean; exported: boolean; } export interface BaseMetadata { modifiers: ModifiersMetadata; } export interface ConstructorMetadata<T extends object = object> extends BaseMetadata { cls: ClassType<T>; args: unknown[]; } export interface MethodMetadata<T extends object = object> extends BaseMetadata { name: Key<T>; args: unknown[]; returnType: unknown; propertyDescriptor: PropertyDescriptor; } export interface PropertyMetadata<T extends object = object> extends BaseMetadata { name: Key<T>; type: unknown; } export interface ClassMetadata<T extends object = object> { ctor: ConstructorMetadata<T>; properties: Map<Key<T>, PropertyMetadata<T>>; methods: Map<Key<T>, MethodMetadata<T>>; }