@ombori/epc-ean
Version:
EPC Tag Data Standard encoding and decoding library, written in javascript
120 lines (119 loc) • 4.72 kB
JavaScript
/*
* EPC Tag Data Standard
* 2021 Sergio S. - https://github.com/sergiss/epc-tds
*/
'use strict';
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = __importDefault(require("./epc/utils/utils"));
const sgtin96_1 = require("./epc/sgtin/sgtin96");
const sgtin198_1 = require("./epc/sgtin/sgtin198");
const sgln96_1 = require("./epc/sgln/sgln96");
const sgln195_1 = require("./epc/sgln/sgln195");
const sscc96_1 = require("./epc/sscc/sscc96");
const grai96_1 = require("./epc/grai/grai96");
const grai170_1 = require("./epc/grai/grai170");
const gid96_1 = require("./epc/gid/gid96");
const giai96_1 = require("./epc/giai/giai96");
const giai202_1 = require("./epc/giai/giai202");
const gsrn96_1 = require("./epc/gsrn/gsrn96");
const cpi96_1 = require("./epc/cpi/cpi96");
const gdti96_1 = require("./epc/gdti/gdti96");
const gdti174_1 = require("./epc/gdti/gdti174");
const sgcn96_1 = require("./epc/sgcn/sgcn96");
function fromTagURI(uri) {
const value = uri.split(':');
switch (value[3]) {
case sgtin96_1.Sgtin96.TAG_URI:
return sgtin96_1.Sgtin96.fromTagURI(uri);
case sgtin198_1.Sgtin198.TAG_URI:
return sgtin198_1.Sgtin198.fromTagURI(uri);
case grai96_1.Grai96.TAG_URI:
return grai96_1.Grai96.fromTagURI(uri);
case grai170_1.Grai170.TAG_URI:
return grai170_1.Grai170.fromTagURI(uri);
case sscc96_1.Sscc96.TAG_URI:
return sscc96_1.Sscc96.fromTagURI(uri);
case sgln96_1.Sgln96.TAG_URI:
return sgln96_1.Sgln96.fromTagURI(uri);
case sgln195_1.Sgln195.TAG_URI:
return sgln195_1.Sgln195.fromTagURI(uri);
case gid96_1.Gid96.TAG_URI:
return gid96_1.Gid96.fromTagURI(uri);
case giai96_1.Giai96.TAG_URI:
return giai96_1.Giai96.fromTagURI(uri);
case giai202_1.Giai202.TAG_URI:
return giai202_1.Giai202.fromTagURI(uri);
case gsrn96_1.Gsrn96.TAG_URI:
return gsrn96_1.Gsrn96.fromTagURI(uri);
case cpi96_1.Cpi96.TAG_URI:
return cpi96_1.Cpi96.fromTagURI(uri);
case gdti96_1.Gdti96.TAG_URI:
return gdti96_1.Gdti96.fromTagURI(uri);
case gdti174_1.Gdti174.TAG_URI:
return gdti174_1.Gdti174.fromTagURI(uri);
case sgcn96_1.Sgcn96.TAG_URI:
return sgcn96_1.Sgcn96.fromTagURI(uri);
default:
throw new Error(`Unsupported Tag URI: '${uri}'`);
}
}
function valueOf(hexEpc) {
let header = utils_1.default.hexToByte(hexEpc, 0); // first byte of EPC
switch (header) {
case grai96_1.Grai96.EPC_HEADER:
return new grai96_1.Grai96(hexEpc);
case grai170_1.Grai170.EPC_HEADER:
return new grai170_1.Grai170(hexEpc);
case sscc96_1.Sscc96.EPC_HEADER:
return new sscc96_1.Sscc96(hexEpc);
case sgln96_1.Sgln96.EPC_HEADER:
return new sgln96_1.Sgln96(hexEpc);
case sgln195_1.Sgln195.EPC_HEADER:
return new sgln195_1.Sgln195(hexEpc);
case sgtin96_1.Sgtin96.EPC_HEADER:
return new sgtin96_1.Sgtin96(hexEpc);
case sgtin198_1.Sgtin198.EPC_HEADER:
return new sgtin198_1.Sgtin198(hexEpc);
case gid96_1.Gid96.EPC_HEADER:
return new gid96_1.Gid96(hexEpc);
case giai96_1.Giai96.EPC_HEADER:
return new giai96_1.Giai96(hexEpc);
case giai202_1.Giai202.EPC_HEADER:
return new giai202_1.Giai202(hexEpc);
case gsrn96_1.Gsrn96.EPC_HEADER:
return new gsrn96_1.Gsrn96(hexEpc);
case cpi96_1.Cpi96.EPC_HEADER:
return new cpi96_1.Cpi96(hexEpc);
case gdti96_1.Gdti96.EPC_HEADER:
return new gdti96_1.Gdti96(hexEpc);
case gdti174_1.Gdti174.EPC_HEADER:
return new gdti174_1.Gdti174(hexEpc);
case sgcn96_1.Sgcn96.EPC_HEADER:
return new sgcn96_1.Sgcn96(hexEpc);
default:
throw new Error(`Unsupported EPC: '${hexEpc}'`);
}
}
exports.default = {
Sgtin96: sgtin96_1.Sgtin96,
Sgtin198: sgtin198_1.Sgtin198,
Sgln96: sgln96_1.Sgln96,
Sgln195: sgln195_1.Sgln195,
Sscc96: sscc96_1.Sscc96,
Grai96: grai96_1.Grai96,
Grai170: grai170_1.Grai170,
Gid96: gid96_1.Gid96,
Giai96: giai96_1.Giai96,
Giai202: giai202_1.Giai202,
Gsrn96: gsrn96_1.Gsrn96,
Cpi96: cpi96_1.Cpi96,
Gdti96: gdti96_1.Gdti96,
Gdti174: gdti174_1.Gdti174,
Sgcn96: sgcn96_1.Sgcn96,
Utils: utils_1.default,
valueOf,
fromTagURI,
};