UNPKG

ean-epc

Version:

EPC Tag Data Standard encoding and decoding library, written in javascript

121 lines (115 loc) 3.23 kB
/* * EPC Tag Data Standard * 2021 Sergio S. - https://github.com/sergiss/epc-tds */ 'use strict'; import Utils from './epc/utils/utils'; import { Sgtin96 } from './epc/sgtin/sgtin96'; import { Sgtin198 } from './epc/sgtin/sgtin198'; import { Sgln96 } from './epc/sgln/sgln96'; import { Sgln195 } from './epc/sgln/sgln195'; import { Sscc96 } from './epc/sscc/sscc96'; import { Grai96 } from './epc/grai/grai96'; import { Grai170 } from './epc/grai/grai170'; import { Gid96 } from './epc/gid/gid96'; import { Giai96 } from './epc/giai/giai96'; import { Giai202 } from './epc/giai/giai202'; import { Gsrn96 } from './epc/gsrn/gsrn96'; import { Cpi96 } from './epc/cpi/cpi96'; import { Gdti96 } from './epc/gdti/gdti96'; import { Gdti174 } from './epc/gdti/gdti174'; import { Sgcn96 } from './epc/sgcn/sgcn96'; function fromTagURI(uri) { const value = uri.split(':'); switch (value[3]) { case Sgtin96.TAG_URI: return Sgtin96.fromTagURI(uri); case Sgtin198.TAG_URI: return Sgtin198.fromTagURI(uri); case Grai96.TAG_URI: return Grai96.fromTagURI(uri); case Grai170.TAG_URI: return Grai170.fromTagURI(uri); case Sscc96.TAG_URI: return Sscc96.fromTagURI(uri); case Sgln96.TAG_URI: return Sgln96.fromTagURI(uri); case Sgln195.TAG_URI: return Sgln195.fromTagURI(uri); case Gid96.TAG_URI: return Gid96.fromTagURI(uri); case Giai96.TAG_URI: return Giai96.fromTagURI(uri); case Giai202.TAG_URI: return Giai202.fromTagURI(uri); case Gsrn96.TAG_URI: return Gsrn96.fromTagURI(uri); case Cpi96.TAG_URI: return Cpi96.fromTagURI(uri); case Gdti96.TAG_URI: return Gdti96.fromTagURI(uri); case Gdti174.TAG_URI: return Gdti174.fromTagURI(uri); case Sgcn96.TAG_URI: return Sgcn96.fromTagURI(uri); default: throw new Error(`Unsupported Tag URI: '${uri}'`); } } function valueOf(hexEpc) { let header = Utils.hexToByte(hexEpc, 0); // first byte of EPC switch (header) { case Grai96.EPC_HEADER: return new Grai96(hexEpc); case Grai170.EPC_HEADER: return new Grai170(hexEpc); case Sscc96.EPC_HEADER: return new Sscc96(hexEpc); case Sgln96.EPC_HEADER: return new Sgln96(hexEpc); case Sgln195.EPC_HEADER: return new Sgln195(hexEpc); case Sgtin96.EPC_HEADER: return new Sgtin96(hexEpc); case Sgtin198.EPC_HEADER: return new Sgtin198(hexEpc); case Gid96.EPC_HEADER: return new Gid96(hexEpc); case Giai96.EPC_HEADER: return new Giai96(hexEpc); case Giai202.EPC_HEADER: return new Giai202(hexEpc); case Gsrn96.EPC_HEADER: return new Gsrn96(hexEpc); case Cpi96.EPC_HEADER: return new Cpi96(hexEpc); case Gdti96.EPC_HEADER: return new Gdti96(hexEpc); case Gdti174.EPC_HEADER: return new Gdti174(hexEpc); case Sgcn96.EPC_HEADER: return new Sgcn96(hexEpc); default: throw new Error(`Unsupported EPC: '${hexEpc}'`); } } export default { Sgtin96, Sgtin198, Sgln96, Sgln195, Sscc96, Grai96, Grai170, Gid96, Giai96, Giai202, Gsrn96, Cpi96, Gdti96, Gdti174, Sgcn96, Utils, valueOf, fromTagURI, };