@martinmilo/verve
Version:
TypeScript domain modeling library with field-level authorization, business rule validation, and context-aware access control
28 lines • 935 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeFieldInstanceKey = makeFieldInstanceKey;
exports.getBaseModelMethods = getBaseModelMethods;
exports.deepClone = deepClone;
function makeFieldInstanceKey(key) {
if (key.startsWith('$')) {
return key;
}
return `$${key}`;
}
function getBaseModelMethods(ModelClass) {
const modelMethods = new Set();
const ownPropertyNames = Object.getOwnPropertyNames(ModelClass.prototype);
for (const name of ownPropertyNames) {
if (name !== 'constructor') {
const descriptor = Object.getOwnPropertyDescriptor(ModelClass.prototype, name);
if (descriptor && typeof descriptor.value === 'function') {
modelMethods.add(name);
}
}
}
return modelMethods;
}
function deepClone(obj) {
return JSON.parse(JSON.stringify(obj));
}
//# sourceMappingURL=utils.js.map