UNPKG

@boostercloud/metadata-booster

Version:

Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.

26 lines (25 loc) 760 B
export type ClassType = { new (...args: unknown[]): unknown; }; export type TypeGroup = 'String' | 'Number' | 'Boolean' | 'Enum' | 'Union' | 'Intersection' | 'Function' | 'Class' | 'Interface' | 'Type' | 'Array' | 'Object' | 'ReadonlyArray' | 'Other'; export interface TypeMetadata { name: string; typeGroup: TypeGroup; parameters: Array<TypeMetadata>; isNullable: boolean; isGetAccessor: boolean; typeName?: string; importPath?: string; type?: ClassType; } export interface PropertyMetadata { name: string; typeInfo: TypeMetadata; dependencies: Array<string>; } export interface ClassMetadata { name: string; type: ClassType; fields: Array<PropertyMetadata>; methods: Array<PropertyMetadata>; }