@syncable/core
Version:
34 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const lodash_1 = tslib_1.__importDefault(require("lodash"));
const uuid_1 = tslib_1.__importDefault(require("uuid"));
function generateUniqueId() {
return uuid_1.default();
}
exports.generateUniqueId = generateUniqueId;
function getNonCreationRefsFromRefDict(refDict) {
return lodash_1.default.flatMap(Object.values(refDict), ref => Array.isArray(ref)
? ref.filter(ref => 'id' in ref)
: ref && 'id' in ref
? [ref]
: []);
}
exports.getNonCreationRefsFromRefDict = getNonCreationRefsFromRefDict;
function getRefsFromRefDict(refDict) {
return lodash_1.default.flatMap(Object.values(refDict), ref => Array.isArray(ref) ? ref : [ref]);
}
exports.getRefsFromRefDict = getRefsFromRefDict;
function deepFreeze(value) {
if (!lodash_1.default.isObjectLike(value)) {
return;
}
let propertyNames = Object.getOwnPropertyNames(value);
for (let propertyName of propertyNames) {
let propertyValue = value[propertyName];
deepFreeze(propertyValue);
}
Object.freeze(value);
}
exports.deepFreeze = deepFreeze;
//# sourceMappingURL=utils.js.map