UNPKG

openapi-metadata

Version:

Auto-Generate OpenAPI specifications from Typescript decorators

43 lines (37 loc) 1.33 kB
'use strict'; const deepmerge = require('deepmerge'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; } const deepmerge__default = /*#__PURE__*/_interopDefaultCompat(deepmerge); function createMetadataStorage(key, defaultMetadata) { function defineMetadata(object, metadata, propertyKey) { if (propertyKey) { Reflect.defineMetadata(key, metadata, object, propertyKey); } else { Reflect.defineMetadata(key, metadata, object); } } function getMetadata(object, propertyKey, withParent = false) { if (propertyKey) { let metadata = Reflect.getMetadata(key, object, propertyKey) ?? defaultMetadata; if (withParent) { metadata = deepmerge__default(getMetadata(object.constructor), metadata); } return metadata; } else { return Reflect.getMetadata(key, object) ?? defaultMetadata; } } function mergeMetadata(object, metadata, propertyKey) { const existing = getMetadata(object, propertyKey); const merged = deepmerge__default(existing, metadata); defineMetadata(object, merged, propertyKey); return merged; } return { defineMetadata, getMetadata, mergeMetadata }; } exports.createMetadataStorage = createMetadataStorage; //# sourceMappingURL=factory.cjs.map