matrix-react-sdk
Version:
SDK for matrix.org using React
30 lines (27 loc) • 2.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getCircularReplacer = void 0;
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value#circular_references
// Injects `<$ cycle-trimmed $>` wherever it cuts a cyclical object relationship
const getCircularReplacer = () => {
const seen = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if (seen.has(value)) {
return "<$ cycle-trimmed $>";
}
seen.add(value);
}
return value;
};
};
exports.getCircularReplacer = getCircularReplacer;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDaXJjdWxhclJlcGxhY2VyIiwic2VlbiIsIldlYWtTZXQiLCJrZXkiLCJ2YWx1ZSIsImhhcyIsImFkZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvSlNPTi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG50eXBlIFN0cmluZ2lmeVJlcGxhY2VyID0gKHRoaXM6IGFueSwga2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueTtcblxuLy8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9FcnJvcnMvQ3ljbGljX29iamVjdF92YWx1ZSNjaXJjdWxhcl9yZWZlcmVuY2VzXG4vLyBJbmplY3RzIGA8JCBjeWNsZS10cmltbWVkICQ+YCB3aGVyZXZlciBpdCBjdXRzIGEgY3ljbGljYWwgb2JqZWN0IHJlbGF0aW9uc2hpcFxuZXhwb3J0IGNvbnN0IGdldENpcmN1bGFyUmVwbGFjZXIgPSAoKTogU3RyaW5naWZ5UmVwbGFjZXIgPT4ge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldCgpO1xuICAgIHJldHVybiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiPCQgY3ljbGUtdHJpbW1lZCAkPlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7QUFDQTtBQUNPLE1BQU1BLG1CQUFtQixHQUFHQSxDQUFBLEtBQXlCO0VBQ3hELE1BQU1DLElBQUksR0FBRyxJQUFJQyxPQUFPLENBQUMsQ0FBQztFQUMxQixPQUFPLENBQUNDLEdBQVcsRUFBRUMsS0FBVSxLQUFVO0lBQ3JDLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSUEsS0FBSyxLQUFLLElBQUksRUFBRTtNQUM3QyxJQUFJSCxJQUFJLENBQUNJLEdBQUcsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7UUFDakIsT0FBTyxxQkFBcUI7TUFDaEM7TUFDQUgsSUFBSSxDQUFDSyxHQUFHLENBQUNGLEtBQUssQ0FBQztJQUNuQjtJQUNBLE9BQU9BLEtBQUs7RUFDaEIsQ0FBQztBQUNMLENBQUM7QUFBQ0csT0FBQSxDQUFBUCxtQkFBQSxHQUFBQSxtQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==