Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

gtin

xbpf68.3kMIT1.0.2TypeScript support: included

GTIN (UPC, EAN, ITF, etc.) utilities.

gtin, upc, ean, ucc, itf, itf-14, itf14, ean-13, ean13, ucc-12, ucc12, upc-e, upce, upca, upc-a, validation, utilities, valid

readme

gtin

npm version javascript standard style travis build coveralls coverage david dependencies david dev dependencies

GTIN (UPC, EAN, ITF, etc.) utilities.

npm install gtin



gtin.isGTIN(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

gtin.isValid(barcode)

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

gtin.minify(barcode)

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

gtin.getFormat(barcode)

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

gtin.getRealFormat(barcode)

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

gtin.upcE.compress(barcode)

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

gtin.upcE.expand(barcode)

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

changelog

master

No changes yet.


1.0.2

Other changes

  • Fixed README to have correct examples (again).

1.0.1

Other changes

  • Fixed README to have correct examples.

1.0.0

Breaking changes

  • Minimum supported Node.js version is now 10.

    Note that this library may still work with older versions, but no effort will be made to fix this library to support those versions.

  • Support for browsers that don't support String.padStart (e.g. all IE and opera mini versions) has been removed.

    Use Babel if you need to support older browsers.

  • API rename

    • gtin.validate is now gtin.isValid
    • gtin.upce is now gtin.upcE

      Alternatively, you can also import the UPC-E functions directly: import upcE from 'gtin/lib/upc-e'

Other changes

  • Typescript support

    .d.ts declaration files are now included in the published package.


0.3.0

Initial release.