New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

bark-js

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bark-js

Parse barcode inputs into a unified GS1-128 like format

latest
Source
npmnpm
Version
1.2.1
Version published
Maintainers
1
Created
Source

Bark JS

npm version Travis Issues

Bark parses GS1-128 barcodes and extracts the catalogued data according to the GS1 General Specifications (PDF). It can also parse other SKU-related formats to convert into GTINs in GS1, such as EAN-13, ITF-14 and UPC-A.

How to use it

npm install bark-js

Examples

Let's pretend we scan the box in this photo.

const bark = require('bark-js')

bark( '015730033004265615171019' )
// returns:
{
  symbology: 'unknown',
  elements: [
    {
      ai: '01',
      title: 'GTIN',
      value: '57300330042656',
      raw: '57300330042656'
    },
    {
      ai: '15',
      title: 'BEST BEFORE or BEST BY',
      value: '2017-10-19',
      raw: '171019'
    }
  ],
  originalBarcode: '015730033004265615171019'
}

If you are going to scan simple barcodes (e.g. UPC-A, EAN-13, ITF-14, etc.) you can set the assumeGtin option to treat shorter barcodes (11-14 digits) as GS1-128 with a GTIN AI:

const bark = require('bark-js')

bark( '09002490100094', { assumeGtin: true } )
// returns:
{
  symbology: 'unknown',
  elements: [
    {
      ai: '01',
      title: 'GTIN',
      value: '09002490100094',
      raw: '09002490100094'
    }
  ],
  originalBarcode: '0109002490100094'
}

Depending on your barcode reader, you may receive FNC characters that arent the <GS> (ASCII 29) character. To set the group separator yourself, pass the fnc option:

const bark = require('bark-js')

bark( '10FRIDGEX0109002490100094', { fnc: 'X' } )
// returns:
{
  symbology: 'unknown',
  elements: [
    {
      ai: '10',
      title: 'BATCH/LOT',
      value: 'FRIDGE',
      raw: 'FRIDGEX'
    },
    {
      ai: '01',
      title: 'GTIN',
      value: '09002490100094',
      raw: '09002490100094'
    }
  ],
  originalBarcode: '10FRIDGEX0109002490100094'
}

Depending on the type of elements in your code, the parsers may append additional fields to such as isoCurrencyCode and amount for your convenience:

const bark = require('bark-js')

bark( '393297817999' )
// returns:
{
  symbology: 'unknown',
  elements: [
    {
      ai: '3932',
      title: 'PRICE',
      value: '978179.99',
      isoCurrencyCode: '978',
      amount: '179.99',
      raw: '97817999'
    }
  ],
  originalBarcode: '393297817999'
}

Contributing

Pull requests to Sleavely/Bark-JS are encouraged and appreciated!

Keywords

barcode

FAQs

Package last updated on 26 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts