UNPKG

objectypes

Version:

A type-safe library to transform and validate objects

36 lines (35 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findClassMappingMetadata = exports.saveClassMappingMetadata = void 0; const utils_1 = require("./utils"); const mapPropertyMetadata = new Map(); function saveClassMappingMetadata(className, metadata) { const properties = mapPropertyMetadata.get(className); if (!properties) { mapPropertyMetadata.set(className, [metadata]); } else { properties.push(metadata); } } exports.saveClassMappingMetadata = saveClassMappingMetadata; function findClassMappingMetadata(klass) { var _a; const klassName = (_a = klass.name) !== null && _a !== void 0 ? _a : klass.constructor.name; const mappingProperties = mapPropertyMetadata.get(klassName); if (!mappingProperties) { return undefined; } const parentClassMappingMetadata = findParentClassMappingMetadata(klass); return parentClassMappingMetadata ? [...mappingProperties, ...parentClassMappingMetadata] : mappingProperties; } exports.findClassMappingMetadata = findClassMappingMetadata; function findParentClassMappingMetadata(klass) { const parentClass = (0, utils_1.findParentClass)(klass); if (parentClass === undefined) { return; } return findClassMappingMetadata(parentClass); }