graphql-mocks
Version:
Tools for setting up graphql test resolvers
32 lines (30 loc) • 1.22 kB
JavaScript
import { maskReference, unmaskReference } from './reference-mask.mjs';
// TODO: When this library supports node >= 22, replace these with actual Set methods
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#set_composition
function referenceIntersection(groupA, groupB) {
var maskedGroupA = new Set(groupA.map(maskReference));
var maskedGroupB = new Set(groupB.map(maskReference));
var intersection = [];
for (var maskedGroupAReference of maskedGroupA) {
if (maskedGroupB.has(maskedGroupAReference)) {
intersection.push(unmaskReference(maskedGroupAReference));
}
}
return intersection;
}
function referenceDifference(groupA, groupB) {
if (groupA.length === 0 || groupB.length === 0) {
return groupA;
}
var maskedGroupA = new Set(groupA.map(maskReference));
var maskedGroupB = new Set(groupB.map(maskReference));
var difference = [];
for (var maskedGroupAReference of maskedGroupA) {
if (!maskedGroupB.has(maskedGroupAReference)) {
difference.push(unmaskReference(maskedGroupAReference));
}
}
return difference;
}
export { referenceDifference, referenceIntersection };
//# sourceMappingURL=reference-set-helpers.mjs.map