graphql-mocks
Version:
Tools for setting up graphql test resolvers
35 lines (32 loc) • 1.36 kB
JavaScript
var referenceMask = require('./reference-mask.js');
// 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) {
const maskedGroupA = new Set(groupA.map(referenceMask.maskReference));
const maskedGroupB = new Set(groupB.map(referenceMask.maskReference));
const intersection = [];
for (const maskedGroupAReference of maskedGroupA) {
if (maskedGroupB.has(maskedGroupAReference)) {
intersection.push(referenceMask.unmaskReference(maskedGroupAReference));
}
}
return intersection;
}
function referenceDifference(groupA, groupB) {
if (groupA.length === 0 || groupB.length === 0) {
return groupA;
}
const maskedGroupA = new Set(groupA.map(referenceMask.maskReference));
const maskedGroupB = new Set(groupB.map(referenceMask.maskReference));
const difference = [];
for (const maskedGroupAReference of maskedGroupA) {
if (!maskedGroupB.has(maskedGroupAReference)) {
difference.push(referenceMask.unmaskReference(maskedGroupAReference));
}
}
return difference;
}
exports.referenceDifference = referenceDifference;
exports.referenceIntersection = referenceIntersection;
//# sourceMappingURL=reference-set-helpers.js.map
;