@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
JavaScript
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