@c11/engine.db
Version:
The engine db
43 lines • 2.72 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isCircular = void 0;
// credit to is-circular npm library
var isPlainObject_1 = __importDefault(require("lodash/isPlainObject"));
var isCircular = function (obj) {
if (!(obj instanceof Object)) {
throw new TypeError('"obj" must be an object (or inherit from it)');
}
return _isCircular(obj);
};
exports.isCircular = isCircular;
function _isCircular(obj, parentList) {
parentList = new Node(obj, parentList);
for (var key in obj) {
var val = obj[key];
if ((0, isPlainObject_1.default)(val)) {
if (parentList.contains(val) || _isCircular(val, parentList)) {
return true;
}
}
}
return false;
}
function Node(value, next) {
// @ts-ignore
this.value = value;
// @ts-ignore
this.next = next;
}
Node.prototype.contains = function (value) {
var cursor = this;
while (cursor) {
if (cursor.value === value)
return true;
cursor = cursor.next;
}
return false;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNDaXJjdWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbi9pc0NpcmN1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9DQUFvQztBQUNwQyx1RUFBaUQ7QUFFMUMsSUFBTSxVQUFVLEdBQUcsVUFBQyxHQUFRO0lBQ2pDLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxNQUFNLENBQUMsRUFBRTtRQUM1QixNQUFNLElBQUksU0FBUyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7S0FDckU7SUFDRCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFMVyxRQUFBLFVBQVUsY0FLckI7QUFFRixTQUFTLFdBQVcsQ0FBQyxHQUFRLEVBQUUsVUFBVztJQUN4QyxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXZDLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1FBQ25CLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUEsdUJBQWEsRUFBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSTtJQUN2QixhQUFhO0lBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDbkIsYUFBYTtJQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ25CLENBQUM7QUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFVLEtBQUs7SUFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBRWxCLE9BQU8sTUFBTSxFQUFFO1FBQ2IsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztLQUN0QjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDIn0=
;