is_disjoint.js 594 B

12345678910111213141516171819202122
  1. const isDisjoint = (...headers) => {
  2. const sources = headers.filter(Boolean);
  3. if (sources.length === 0 || sources.length === 1) {
  4. return true;
  5. }
  6. let acc;
  7. for (const header of sources) {
  8. const parameters = Object.keys(header);
  9. if (!acc || acc.size === 0) {
  10. acc = new Set(parameters);
  11. continue;
  12. }
  13. for (const parameter of parameters) {
  14. if (acc.has(parameter)) {
  15. return false;
  16. }
  17. acc.add(parameter);
  18. }
  19. }
  20. return true;
  21. };
  22. export default isDisjoint;