lib/compute_fingerprint.js
var crypto = require("crypto");
var Fingerprint = function (path, rule, message) {
this.path = path;
this.rule = rule;
this.message = message;
};
Fingerprint.prototype.compute = function() {
var fingerprint = null;
if (this.rule === "complexity") {
var md5 = crypto.createHash("md5");
md5.update(this.path);
md5.update(this.rule);
md5.update(this.strippedMessage(this.message));
fingerprint = md5.digest("hex");
}
return fingerprint;
};
Fingerprint.prototype.strippedMessage = function(message) {
var regex = /Function '\S+'/
, match = message.match(regex);
if (match) {
return match[0];
} else {
return "Anonymous Function";
}
};
function computeFingerprint(path, rule, message) {
return new Fingerprint(path, rule, message).compute();
};
module.exports = computeFingerprint;