Skip to content

Commit bb806e0

Browse files
committed
fix modifiedCode when given 290/291 isbn codes
1 parent e06e447 commit bb806e0

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

index.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ const validatorMap = {
139139
const validate = (code, type) => {
140140
// 1980s era UPC codes were apparently 11 digits, not using a checksum. So, if we get 11, I
141141
// guess there's not much we can do besides pass it with a 0 prefixing it and hope it works.
142-
const modifiedCode = code.length === 11 ? `0${code}` : code;
142+
let modifiedCode = code.length === 11 ? `0${code}` : code;
143143
if (!type) {
144144
type = getTypeOfBarcode(modifiedCode);
145145
}
@@ -148,11 +148,11 @@ const validate = (code, type) => {
148148
if (modifiedCode.startsWith('290')) {
149149
const [ junk1, junk2, junk3, ...rest ] = modifiedCode;
150150
const baseCode = rest.join('');
151-
modifiedCode = `978${baseCode}${getIsbn13Checksum(`978${baseCode}`)}`;
151+
modifiedCode = `978${baseCode.slice(0, -1)}${getIsbn13Checksum(`978${baseCode}`)}`;
152152
} else if (modifiedCode.startsWith('291')) {
153153
const [ junk1, junk2, junk3, ...rest ] = modifiedCode;
154154
const baseCode = rest.join('');
155-
modifiedCode = `979${baseCode}${getIsbn13Checksum(`979${baseCode}`)}`
155+
modifiedCode = `979${baseCode.slice(0, -1)}${getIsbn13Checksum(`979${baseCode}`)}`
156156
}
157157
}
158158
let valid = false;
@@ -176,4 +176,6 @@ const validate = (code, type) => {
176176
// console.warn(validate('BOOTSTRA P')); // should be an invalid ASIN
177177
// console.warn(getUpcChecksum('02035616631'));
178178
// console.warn(validate('Test random text'));
179+
// console.warn(validate('2900077274312'));
180+
// console.warn(validate('2900538754575'));
179181
module.exports = validate;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ericblade/barcode-validator",
3-
"version": "2.4.0",
3+
"version": "2.4.1",
44
"description": "Node Javascript Barcode Validation for ISBN10, ISBN13, UPC, GTIN",
55
"main": "./index.js",
66
"types": "./index.d.ts",

0 commit comments

Comments
 (0)