@mediocre/bloodhound
Version:
Bloodhound is a Node.js package that allows you to retrieve tracking data from shipping carriers (Amazon, DHL, FedEx, UPS, USPS) in a common format.
28 lines (22 loc) • 745 B
JavaScript
module.exports = function(trackingNumber, multipliers, mod) {
var midx = 0;
var sum = 0;
var checkDigit, i, index, ref;
for (index = i = 0, ref = trackingNumber.length - 2; (0 <= ref ? i <= ref : i >= ref); index = 0 <= ref ? ++i : --i) {
sum += parseInt(trackingNumber[index], 10) * multipliers[midx];
midx = midx === multipliers.length - 1 ? 0 : midx + 1;
}
if (mod === 11) {
checkDigit = sum % 11;
if (checkDigit === 10) {
checkDigit = 0;
}
}
if (mod === 10) {
checkDigit = 0;
if ((sum % 10) > 0) {
checkDigit = 10 - sum % 10;
}
}
return checkDigit === parseInt(trackingNumber[trackingNumber.length - 1]);
};