UNPKG

matrix-react-sdk

Version:
45 lines (40 loc) 4.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setDiff = setDiff; exports.setHasDiff = setHasDiff; var _arrays = require("./arrays"); /* Copyright 2024 New Vector Ltd. Copyright 2021 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. */ /** * Determines if two sets are different through a shallow comparison. * @param a The first set. Must be defined. * @param b The second set. Must be defined. * @returns True if they are different, false otherwise. */ function setHasDiff(a, b) { if (a.size === b.size) { // When the lengths are equal, check to see if either set is missing an element from the other. if (Array.from(b).some(i => !a.has(i))) return true; if (Array.from(a).some(i => !b.has(i))) return true; // if all the keys are common, say so return false; } else { return true; // different lengths means they are naturally diverged } } /** * Determines the values added and removed between two sets. * @param a The first set. Must be defined. * @param b The second set. Must be defined. * @returns The difference between the values in each set. */ function setDiff(a, b) { return (0, _arrays.arrayDiff)(Array.from(a), Array.from(b)); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXJyYXlzIiwicmVxdWlyZSIsInNldEhhc0RpZmYiLCJhIiwiYiIsInNpemUiLCJBcnJheSIsImZyb20iLCJzb21lIiwiaSIsImhhcyIsInNldERpZmYiLCJhcnJheURpZmYiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2V0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBhcnJheURpZmYsIERpZmYgfSBmcm9tIFwiLi9hcnJheXNcIjtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHR3byBzZXRzIGFyZSBkaWZmZXJlbnQgdGhyb3VnaCBhIHNoYWxsb3cgY29tcGFyaXNvbi5cbiAqIEBwYXJhbSBhIFRoZSBmaXJzdCBzZXQuIE11c3QgYmUgZGVmaW5lZC5cbiAqIEBwYXJhbSBiIFRoZSBzZWNvbmQgc2V0LiBNdXN0IGJlIGRlZmluZWQuXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZXkgYXJlIGRpZmZlcmVudCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0SGFzRGlmZjxUPihhOiBTZXQ8VD4sIGI6IFNldDxUPik6IGJvb2xlYW4ge1xuICAgIGlmIChhLnNpemUgPT09IGIuc2l6ZSkge1xuICAgICAgICAvLyBXaGVuIHRoZSBsZW5ndGhzIGFyZSBlcXVhbCwgY2hlY2sgdG8gc2VlIGlmIGVpdGhlciBzZXQgaXMgbWlzc2luZyBhbiBlbGVtZW50IGZyb20gdGhlIG90aGVyLlxuICAgICAgICBpZiAoQXJyYXkuZnJvbShiKS5zb21lKChpKSA9PiAhYS5oYXMoaSkpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKEFycmF5LmZyb20oYSkuc29tZSgoaSkgPT4gIWIuaGFzKGkpKSkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgLy8gaWYgYWxsIHRoZSBrZXlzIGFyZSBjb21tb24sIHNheSBzb1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIGRpZmZlcmVudCBsZW5ndGhzIG1lYW5zIHRoZXkgYXJlIG5hdHVyYWxseSBkaXZlcmdlZFxuICAgIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSB2YWx1ZXMgYWRkZWQgYW5kIHJlbW92ZWQgYmV0d2VlbiB0d28gc2V0cy5cbiAqIEBwYXJhbSBhIFRoZSBmaXJzdCBzZXQuIE11c3QgYmUgZGVmaW5lZC5cbiAqIEBwYXJhbSBiIFRoZSBzZWNvbmQgc2V0LiBNdXN0IGJlIGRlZmluZWQuXG4gKiBAcmV0dXJucyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZXMgaW4gZWFjaCBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREaWZmPFQ+KGE6IFNldDxUPiwgYjogU2V0PFQ+KTogRGlmZjxUPiB7XG4gICAgcmV0dXJuIGFycmF5RGlmZihBcnJheS5mcm9tKGEpLCBBcnJheS5mcm9tKGIpKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLFVBQVVBLENBQUlDLENBQVMsRUFBRUMsQ0FBUyxFQUFXO0VBQ3pELElBQUlELENBQUMsQ0FBQ0UsSUFBSSxLQUFLRCxDQUFDLENBQUNDLElBQUksRUFBRTtJQUNuQjtJQUNBLElBQUlDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDSCxDQUFDLENBQUMsQ0FBQ0ksSUFBSSxDQUFFQyxDQUFDLElBQUssQ0FBQ04sQ0FBQyxDQUFDTyxHQUFHLENBQUNELENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJO0lBQ3JELElBQUlILEtBQUssQ0FBQ0MsSUFBSSxDQUFDSixDQUFDLENBQUMsQ0FBQ0ssSUFBSSxDQUFFQyxDQUFDLElBQUssQ0FBQ0wsQ0FBQyxDQUFDTSxHQUFHLENBQUNELENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJOztJQUVyRDtJQUNBLE9BQU8sS0FBSztFQUNoQixDQUFDLE1BQU07SUFDSCxPQUFPLElBQUksQ0FBQyxDQUFDO0VBQ2pCO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0UsT0FBT0EsQ0FBSVIsQ0FBUyxFQUFFQyxDQUFTLEVBQVc7RUFDdEQsT0FBTyxJQUFBUSxpQkFBUyxFQUFDTixLQUFLLENBQUNDLElBQUksQ0FBQ0osQ0FBQyxDQUFDLEVBQUVHLEtBQUssQ0FBQ0MsSUFBSSxDQUFDSCxDQUFDLENBQUMsQ0FBQztBQUNsRCIsImlnbm9yZUxpc3QiOltdfQ==