UNPKG

@opra/nestjs

Version:
37 lines (36 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpraNestUtils = void 0; const GUARDS_METADATA = '__guards__'; const INTERCEPTORS_METADATA = '__interceptors__'; const EXCEPTION_FILTERS_METADATA = '__exceptionFilters__'; class OpraNestUtils { static copyDecoratorMetadata(target, ...source) { for (const parent of source) { const metadataKeys = Reflect.getOwnMetadataKeys(parent); for (const key of metadataKeys) { if (typeof key === 'string' && key.startsWith('opra.') && !Reflect.hasOwnMetadata(key, target)) { const metadata = Reflect.getMetadata(key, parent); Reflect.defineMetadata(key, metadata, target); continue; } if (key === GUARDS_METADATA || key === INTERCEPTORS_METADATA || key === EXCEPTION_FILTERS_METADATA) { const m1 = Reflect.getMetadata(key, target) || []; const metadata = [...m1]; const m2 = Reflect.getOwnMetadata(key, parent) || []; m2.forEach((t) => { if (!metadata.includes(t)) { metadata.push(t); } }); Reflect.defineMetadata(key, metadata, target); } } } } } exports.OpraNestUtils = OpraNestUtils;