domAccessAgregator.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. var debug = require('debug')('ylt:domAccessAgregator');
  2. var domAccessAgregator = function() {
  3. 'use strict';
  4. this.agregate = function(data) {
  5. debug('Starting to agregate DOM Accesses...');
  6. let count = 0;
  7. let offenders = {
  8. byType: {}
  9. };
  10. const metricsToGather = [
  11. 'DOMqueriesById',
  12. 'DOMqueriesByTagName',
  13. 'DOMqueriesByClassName',
  14. 'DOMqueriesByQuerySelectorAll',
  15. 'DOMinserts',
  16. 'DOMmutationsInserts',
  17. 'DOMmutationsRemoves',
  18. 'DOMmutationsAttributes',
  19. 'eventsBound'
  20. ];
  21. metricsToGather.forEach(key => {
  22. if (data.toolsResults.phantomas.metrics[key]) {
  23. count += data.toolsResults.phantomas.metrics[key];
  24. }
  25. offenders.byType[key] = [];
  26. if (data.toolsResults.phantomas.offenders[key]) {
  27. offenders.byType[key] = data.toolsResults.phantomas.offenders[key];
  28. }
  29. });
  30. data.toolsResults.domAccessAgregator = {
  31. metrics: {
  32. DOMaccesses: count
  33. },
  34. offenders: {
  35. DOMaccesses: offenders
  36. }
  37. };
  38. debug('Done agregating DOM Accesses.');
  39. return data;
  40. };
  41. };
  42. module.exports = new domAccessAgregator();