@nestjs/common
Version:
Nest - modern, fast, powerful node.js web framework (@common)
40 lines (39 loc) • 1.4 kB
JavaScript
;
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);
};