@shippack/isbn-verify
Version:
Verify ISBN string format and check digit.
3 lines (2 loc) • 2.35 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var t=0;function i(i){return"__private_"+t+++"_"+i}function r(t,i){if(!Object.prototype.hasOwnProperty.call(t,i))throw new TypeError("attempted to use private field on non-instance");return t}var e=i("isbnNoHyphens"),s=i("isbn13"),n=i("isbn10");exports.default=function(){function t(t,i){void 0===i&&(i=!1),Object.defineProperty(this,e,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:void 0}),Object.defineProperty(this,n,{writable:!0,value:void 0}),r(this,s)[s]=!1,r(this,n)[n]=!1;var u=t.replace(/-/g,"");if(r(this,e)[e]=u,i){var b=t.length;17===b&&/^(978|979)-\d{1,5}-\d{1,7}-\d{1,7}-\d$/.test(t)?r(this,s)[s]=!0:13===b&&/^\d{1,5}-\d{1,7}-\d{1,7}-[\dX]$/.test(t)&&(r(this,n)[n]=!0)}else t.includes("--")||(/^(978|979)\d{10}$/.test(u)?/^\d[\d-]{11,15}\d$/.test(t)&&(r(this,s)[s]=!0):/^\d{9}[\dX]$/.test(u)&&/^\d[\d-]{8,11}[\dX]$/.test(t)&&(r(this,n)[n]=!0))}var i=t.prototype;return i.isValid=function(){return this.verifyCheckDigit()},i.isIsbn13=function(t){return void 0!==t&&t.check_digit?r(this,s)[s]&&this.verifyCheckDigit():r(this,s)[s]},i.isIsbn10=function(t){return void 0!==t&&t.check_digit?r(this,n)[n]&&this.verifyCheckDigit():r(this,n)[n]},i.verifyFormat=function(){return r(this,s)[s]||r(this,n)[n]},i.verifyCheckDigit=function(){if(r(this,s)[s]){var t=r(this,e)[e];return t.substring(12)===this._getCheckDigit13(t)}if(r(this,n)[n]){var i=r(this,e)[e];return i.substring(9)===this._getCheckDigit10(i)}return!1},i._getCheckDigit13=function(t){var i=String(10-(Number(t.substring(0,1))+3*Number(t.substring(1,2))+Number(t.substring(2,3))+3*Number(t.substring(3,4))+Number(t.substring(4,5))+3*Number(t.substring(5,6))+Number(t.substring(6,7))+3*Number(t.substring(7,8))+Number(t.substring(8,9))+3*Number(t.substring(9,10))+Number(t.substring(10,11))+3*Number(t.substring(11,12)))%10);switch(i){case"10":return"0"}return i},i._getCheckDigit10=function(t){var i=String(11-(10*Number(t.substring(0,1))+9*Number(t.substring(1,2))+8*Number(t.substring(2,3))+7*Number(t.substring(3,4))+6*Number(t.substring(4,5))+5*Number(t.substring(5,6))+4*Number(t.substring(6,7))+3*Number(t.substring(7,8))+2*Number(t.substring(8,9)))%11);switch(i){case"10":return"X";case"11":return"0"}return i},t}();
//# sourceMappingURL=isbn-verify.cjs.production.min.js.map