Bläddra i källkod

Fix offendersTransformFn deleted after the first run

Gaël Métais 10 år sedan
förälder
incheckning
4ef83a844f
1 ändrade filer med 12 tillägg och 3 borttagningar
  1. 12 3
      lib/rulesChecker.js

+ 12 - 3
lib/rulesChecker.js

@@ -1,3 +1,5 @@
+var extend = require('util')._extend;
+
 var debug = require('debug')('ylt:ruleschecker');
 
 var RulesChecker = function() {
@@ -21,7 +23,7 @@ var RulesChecker = function() {
 
                     rule = {
                         value: data.toolsResults[policy.tool].metrics[metricName],
-                        policy: policy
+                        policy: extend({}, policy) // Clone object policy instead of reference
                     };
 
                     var offenders = [];
@@ -56,8 +58,15 @@ var RulesChecker = function() {
                     // The function should take an array of strings as single parameter and return a string.
                     if (policy.offendersTransformFn) {
                         rule.offendersCount = offenders.length;
-                        offenders = policy.offendersTransformFn(offenders);
-                        delete policy.offendersTransformFn;
+                        
+                        try {
+                            offenders = policy.offendersTransformFn(offenders);
+                        } catch(err) {
+                            debug('Error while transforming offenders for %s', metricName);
+                            debug(err);
+                        }
+                        
+                        delete rule.policy.offendersTransformFn;
                     }
 
                     if (offenders && offenders.length > 0) {