objectypes
Version:
A type-safe library to transform and validate objects
36 lines (35 loc) • 1.32 kB
JavaScript
;
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);
}