UNPKG

@nestjs/common

Version:

Nest - modern, fast, powerful node.js web framework (@common)

40 lines (39 loc) 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const logger_service_1 = require("../../services/logger.service"); /** * Decorator that assigns metadata to the class/function using the * specified `key`. * * Requires two parameters: * - `key` - a value defining the key under which the metadata is stored * - `value[]` - array of metadata values to be associated with `key` * * This metadata can be reflected using the `Reflector` class. * * Example: `@SetMetadata('roles', ['admin'])` * * @see [Reflection](https://docs.nestjs.com/guards#reflection) * * @publicApi */ exports.SetMetadata = (metadataKey, metadataValue) => { const decoratorFactory = (target, key, descriptor) => { if (descriptor) { Reflect.defineMetadata(metadataKey, metadataValue, descriptor.value); return descriptor; } Reflect.defineMetadata(metadataKey, metadataValue, target); return target; }; decoratorFactory.KEY = metadataKey; return decoratorFactory; }; const logger = new logger_service_1.Logger('ReflectMetadata'); /** * @deprecated */ exports.ReflectMetadata = (metadataKey, metadataValue) => { logger.warn(`DEPRECATED! The @ReflectMetadata() decorator has been deprecated within the 6.0.0 release. Please, use @SetMetadata() instead.`); return exports.SetMetadata(metadataKey, metadataValue); };