UNPKG

@essential-projects/metadata

Version:

the core metadata service for using the metadata from inside the domain

41 lines (39 loc) 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const metadata_contracts_1 = require("@essential-projects/metadata_contracts"); const provider_1 = require("./../provider"); function promote(roles, namespace) { if (!roles || !roles.roles || roles.roles.length === 0) { throw new Error('roles for promotion are missing'); } return function promoteFactory(...args) { switch (args.length) { case 1: return classPromote.apply(this, [args[0], roles, namespace]); case 2: return propertyPromote.apply(this, [args[0], args[1], roles, namespace]); case 3: if (typeof args[2] === 'number') { } return methodPromote.apply(this, [args[0], args[1], args[2], roles, namespace]); default: throw new Error('Decorators are not valid here!'); } }; } exports.promote = promote; function classPromote(target, roles, namespace) { const type = target.prototype ? target.prototype.constructor.name : target.constructor.name; provider_1.MetadataProvider.setForType(metadata_contracts_1.MetadataType.Promotion, roles, namespace, type); return target; } function propertyPromote(target, key, roles, namespace) { const type = target.prototype ? target.prototype.constructor.name : target.constructor.name; provider_1.MetadataProvider.setForType(metadata_contracts_1.MetadataType.Promotion, roles, namespace, type, key); } function methodPromote(target, key, descriptor, roles, namespace) { const type = target.prototype ? target.prototype.constructor.name : target.constructor.name; provider_1.MetadataProvider.setForType(metadata_contracts_1.MetadataType.Promotion, roles, namespace, type, key); return descriptor; } //# sourceMappingURL=promote.js.map