You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

35 lines
954 B

  1. "use strict";
  2. exports.__esModule = true;
  3. exports.default = Resources;
  4. exports.NONE = void 0;
  5. var NONE = {};
  6. exports.NONE = NONE;
  7. function Resources(resources, accessors) {
  8. return {
  9. map: function map(fn) {
  10. if (!resources) return [fn([NONE, null], 0)];
  11. return resources.map(function (resource, idx) {
  12. return fn([accessors.resourceId(resource), resource], idx);
  13. });
  14. },
  15. groupEvents: function groupEvents(events) {
  16. var eventsByResource = new Map();
  17. if (!resources) {
  18. // Return all events if resources are not provided
  19. eventsByResource.set(NONE, events);
  20. return eventsByResource;
  21. }
  22. events.forEach(function (event) {
  23. var id = accessors.resource(event) || NONE;
  24. var resourceEvents = eventsByResource.get(id) || [];
  25. resourceEvents.push(event);
  26. eventsByResource.set(id, resourceEvents);
  27. });
  28. return eventsByResource;
  29. }
  30. };
  31. }