is_disjoint.js 674 B

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