UNPKG

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
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;