strapi-plugin-config-sync/server/utils/getArrayDiff.js

33 lines
709 B
JavaScript
Raw Normal View History

const difference = (arrayOne, arrayTwo, compareKeys) => {
return arrayOne.filter(({
[compareKeys[0]]: id1,
[compareKeys[1]]: id2,
}) => {
return !arrayTwo.some(({
[compareKeys[0]]: id3,
[compareKeys[1]]: id4,
}) => id1 === id3 && id2 === id4);
});
};
const same = (arrayOne, arrayTwo, compareKeys) => {
return arrayOne.filter(({
[compareKeys[0]]: id1,
[compareKeys[1]]: id2,
...restOne
}) => {
return !arrayTwo.some(({
[compareKeys[0]]: id3,
[compareKeys[1]]: id4,
...restTwo
}) => id1 === id3
&& id2 === id4
&& JSON.stringify(restOne) === JSON.stringify(restTwo));
});
};
module.exports = {
difference,
same,
};