UNPKG

@c11/engine.db

Version:

The engine db

43 lines 2.72 kB
"use strict"; 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=