UNPKG

@puq/meta

Version:

A TypeScript utility for managing resource metadata using the reflect-metadata library. This module provides a way to define and retrieve metadata for resource entities, such as entity classes, names, paths, and public access flags, typically used in fram

42 lines (41 loc) 2.33 kB
import { _ as e } from "@swc/helpers/_/_define_property"; import 'reflect-metadata'; import { names as t, paths as a } from '@puq/names'; import { keys as s } from '@puq/is'; export class ResourceMetadataManager { static set(e) { let r = e.target.constructor, { entity: c, isPublic: i } = e, n = a(c().name), M = t(c().name); Reflect.defineMetadata(this.ENTITY, c, r), Reflect.defineMetadata(this.PUBLIC, !!i, r), Reflect.defineMetadata(this.PATHS, n, r), Reflect.defineMetadata(this.NAMES, M, r), Reflect.defineMetadata(this.NAME, M.className, r), Reflect.defineMetadata(this.KEYS, s(c()), r); } static get(e) { return { target: e, entity: this.entity(e), keys: this.keys(e), names: this.names(e), paths: this.paths(e), resourceName: this.resourceName(e), isPublic: this.isPublic(e) }; } static isPublic(e) { return !0 === Reflect.getMetadata(this.PUBLIC, e); } static entity(e) { return Reflect.getMetadata(this.ENTITY, e); } static paths(e) { return Reflect.getMetadata(this.PATHS, e); } static names(e) { return Reflect.getMetadata(this.NAMES, e); } static keys(e) { return Reflect.getMetadata(this.KEYS, e); } static resourceName(e) { return Reflect.getMetadata(this.NAME, e); } } e(ResourceMetadataManager, "ENTITY", Symbol('entity:class')), e(ResourceMetadataManager, "CREATE_DTO", Symbol('create:class')), e(ResourceMetadataManager, "UPDATE_DTO", Symbol('update:class')), e(ResourceMetadataManager, "QUERY_MANY_DTO", Symbol('queryMany:class')), e(ResourceMetadataManager, "QUERY_ONE_DTO", Symbol('queryOne:class')), e(ResourceMetadataManager, "QUERY_COUNT_DTO", Symbol('queryCount:class')), e(ResourceMetadataManager, "RELATION_DTO", Symbol('relation:class')), e(ResourceMetadataManager, "UNSET_RELATION_DTO", Symbol('unsetRelation:class')), e(ResourceMetadataManager, "NAMES", Symbol('entity:names')), e(ResourceMetadataManager, "KEYS", Symbol('entity:keys')), e(ResourceMetadataManager, "PATHS", Symbol('rest:paths')), e(ResourceMetadataManager, "NAME", Symbol('resource:name')), e(ResourceMetadataManager, "PUBLIC", Symbol('is:public')); //# sourceMappingURL=resource-metadata-manager.js.map