GTIN (UPC, EAN, ITF, etc.) utilities.
npm install gtin
- gtin.isGTIN(barcode)
- gtin.isValid(barcode)
- gtin.minify(barcode)
- gtin.getFormat(barcode)
- gtin.getRealFormat(barcode)
- gtin.upcE.compress(barcode)
- gtin.upcE.expand(barcode)
Returns true or false, depending on if the string given is a GTIN barcode. Throws an error if an empty string or anything other than a string is provided.
NOTE: This does not validate the code by check digit. Validation is done
with gtin.isValid
.
import { isGTIN } from 'gtin'
isGTIN('1234') // false
isGTIN('12341238') // true
isGTIN('') // Error thrown
isGTIN(123) // Error thrown
Validates a GTIN (14, 13, 12, or 8-digit) barcode by check digit. Barcode must be a string.
To validate a UPC-E barcode, expand it first: isValid(upcE.expand('01278906'))
import { isValid } from 'gtin'
isValid('12341238') // true
isValid('1234123412344') // true
isValid('12341234123413') // true
isValid('012000007897') // true
isValid('012000007896') // false
isValid('abc') // Error thrown
isValid(123) // Error thrown
isValid('123') // Error thrown
Minifies GTIN to smallest possible representation, by stripping as many leading zeroes as possible. Does not compress to UPC-E.
import { minify } from 'gtin'
minify('00000012341238') // '12341238'
minify('0000012341238') // '12341238'
minify('01234123412344') // '1234123412344
minify('001234123412344') // Error thrown
minify('abc') // Error thrown
minify(123) // Error thrown
minify('123') // Error thrown
Gets the format of the given barcode. Does not validate checksum.
import { getFormat } from 'gtin'
getFormat('12341238') // 'GTIN-8'
getFormat('123412341234') // 'GTIN-12'
getFormat('1234123412344') // 'GTIN-13'
getFormat('01234123412344') // 'GTIN-14'
getFormat('123412381') // Error thrown
getFormat('abc') // Error thrown
getFormat(123) // Error thrown
getFormat('123') // Error thrown
Gets the real format of the given barcode, by minifying it first.
import { getRealFormat } from 'gtin'
getRealFormat('1234123412344') // 'GTIN-13'
getRealFormat('01234123412344') // 'GTIN-13'
getRealFormat('123412381') // Error thrown
getRealFormat('abc') // Error thrown
getRealFormat(123) // Error thrown
getRealFormat('123') // Error thrown
Compress a UPC-A barcode to an 8-digit UPC-E barcode. Does not validate code by check digit. Barcode must be a string.
- 12-digit UPC-A: Number system and check digits are taken into account.
- 11-digit UPC-A: Number system 0 is assumed. Check digit is taken into account.
- 10-digit UPC-A: Number system 0 is assumed. Check digit is generated.
import { upcE } from 'gtin'
upcE.compress('1200000789') // '01278907'
upcE.compress('12000007897') // '01278907'
upcE.compress('012000007897') // '01278907'
upcE.compress('012000007896') // '01278906'
upcE.compress('012345678905') // null
upcE.compress(123) // Error thrown
upcE.compress('123') // Error thrown
upcE.compress('abc') // Error thrown
Expands a UPC-E barcode to a 12-digit UPC-A barcode. Does not validate code by check digit. Barcode must be a string.
- 8-digit UPC-E: Number system and check digits are taken into account.
- 7-digit UPC-E: Number system 0 is assumed. Check digit is taken into account.
- 6-digit UPC-E: Number system 0 is assumed. Check digit is generated.
import { upcE } from 'gtin'
upcE.expand('127890') // '012000007897'
upcE.expand('1278907') // '012000007897'
upcE.expand('01278907') // '012000007897'
upcE.expand('01278906') // '012000007896'
upcE.expand('123412341') // Error thrown
upcE.expand(123) // Error thrown
upcE.expand('123') // Error thrown
upcE.expand('abc') // Error thrown