mirror of
https://github.com/xfarrow/blink
synced 2025-06-27 09:03:02 +02:00
Change endpoint from persons to people
This commit is contained in:
78
backend/apis/nodejs/node_modules/validator/lib/isEAN.js
generated
vendored
Normal file
78
backend/apis/nodejs/node_modules/validator/lib/isEAN.js
generated
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = isEAN;
|
||||
var _assertString = _interopRequireDefault(require("./util/assertString"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* The most commonly used EAN standard is
|
||||
* the thirteen-digit EAN-13, while the
|
||||
* less commonly used 8-digit EAN-8 barcode was
|
||||
* introduced for use on small packages.
|
||||
* Also EAN/UCC-14 is used for Grouping of individual
|
||||
* trade items above unit level(Intermediate, Carton or Pallet).
|
||||
* For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/
|
||||
* EAN consists of:
|
||||
* GS1 prefix, manufacturer code, product code and check digit
|
||||
* Reference: https://en.wikipedia.org/wiki/International_Article_Number
|
||||
* Reference: https://www.gtin.info/
|
||||
*/
|
||||
|
||||
/**
|
||||
* Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14
|
||||
* and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),
|
||||
* with exact numberic matching of 8 or 13 or 14 digits [0-9]
|
||||
*/
|
||||
var LENGTH_EAN_8 = 8;
|
||||
var LENGTH_EAN_14 = 14;
|
||||
var validEanRegex = /^(\d{8}|\d{13}|\d{14})$/;
|
||||
|
||||
/**
|
||||
* Get position weight given:
|
||||
* EAN length and digit index/position
|
||||
*
|
||||
* @param {number} length
|
||||
* @param {number} index
|
||||
* @return {number}
|
||||
*/
|
||||
function getPositionWeightThroughLengthAndIndex(length, index) {
|
||||
if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {
|
||||
return index % 2 === 0 ? 3 : 1;
|
||||
}
|
||||
return index % 2 === 0 ? 1 : 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate EAN Check Digit
|
||||
* Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit
|
||||
*
|
||||
* @param {string} ean
|
||||
* @return {number}
|
||||
*/
|
||||
function calculateCheckDigit(ean) {
|
||||
var checksum = ean.slice(0, -1).split('').map(function (char, index) {
|
||||
return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);
|
||||
}).reduce(function (acc, partialSum) {
|
||||
return acc + partialSum;
|
||||
}, 0);
|
||||
var remainder = 10 - checksum % 10;
|
||||
return remainder < 10 ? remainder : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if string is valid EAN:
|
||||
* Matches EAN-8/EAN-13/EAN-14 regex
|
||||
* Has valid check digit.
|
||||
*
|
||||
* @param {string} str
|
||||
* @return {boolean}
|
||||
*/
|
||||
function isEAN(str) {
|
||||
(0, _assertString.default)(str);
|
||||
var actualCheckDigit = Number(str.slice(-1));
|
||||
return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);
|
||||
}
|
||||
module.exports = exports.default;
|
||||
module.exports.default = exports.default;
|
Reference in New Issue
Block a user