derby
Version:
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
44 lines (43 loc) • 1.21 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.traverseAndCreate = exports.hasKeys = exports.concat = exports.checkKeyIsSafe = void 0;
var objectProtoPropNames = Object.create(null);
Object.getOwnPropertyNames(Object.prototype).forEach(function (prop) {
if (prop !== '__proto__') {
objectProtoPropNames[prop] = true;
}
});
function checkKeyIsSafe(key) {
if (key === '__proto__' || objectProtoPropNames[key]) {
throw new Error("Unsafe key \"".concat(key, "\""));
}
}
exports.checkKeyIsSafe = checkKeyIsSafe;
function concat(a, b) {
if (!a)
return b;
if (!b)
return a;
return a.concat(b);
}
exports.concat = concat;
function hasKeys(value) {
if (!value)
return false;
for (var key in value) {
return true;
}
return false;
}
exports.hasKeys = hasKeys;
function traverseAndCreate(node, segments) {
var len = segments.length;
if (!len)
return node;
for (var i = 0; i < len; i++) {
var segment = segments[i];
checkKeyIsSafe(segment);
node = node[segment] || (node[segment] = {});
}
return node;
}
exports.traverseAndCreate = traverseAndCreate;