From 333fd0562ae8f4dc1a8641cee8e3f27f9abf8d48 Mon Sep 17 00:00:00 2001 From: Eric de Boer Date: Fri, 21 Jun 2024 11:06:05 +0200 Subject: [PATCH] Move constants to files they are used. --- apps/cards/EAN.js | 12 ++++---- apps/cards/EAN13.js | 8 ++++-- apps/cards/constants.js | 60 ---------------------------------------- apps/cards/encode.js | 25 +++++++++++++++-- apps/cards/metadata.json | 1 - 5 files changed, 35 insertions(+), 71 deletions(-) delete mode 100644 apps/cards/constants.js diff --git a/apps/cards/EAN.js b/apps/cards/EAN.js index 8ac113292..177874494 100644 --- a/apps/cards/EAN.js +++ b/apps/cards/EAN.js @@ -24,11 +24,13 @@ * IN THE SOFTWARE. */ -const constants = require("cards.constants.js"); - const encode = require("cards.encode.js"); const Barcode = require("cards.Barcode.js"); +// Standard start end and middle bits +const SIDE_BIN = '101'; +const MIDDLE_BIN = '01010'; + // Base class for EAN8 & EAN13 class EAN extends Barcode { constructor(data, options) { @@ -53,11 +55,11 @@ class EAN extends Barcode { encode() { const data = [ - constants.SIDE_BIN, + SIDE_BIN, this.leftEncode(), - constants.MIDDLE_BIN, + MIDDLE_BIN, this.rightEncode(), - constants.SIDE_BIN + SIDE_BIN ]; return { diff --git a/apps/cards/EAN13.js b/apps/cards/EAN13.js index 9e36356b6..c91e385e3 100644 --- a/apps/cards/EAN13.js +++ b/apps/cards/EAN13.js @@ -26,10 +26,12 @@ * IN THE SOFTWARE. */ -const constants = require("cards.constants.js"); - const EAN = require("cards.EAN.js"); +const EAN13_STRUCTURE = [ + 'LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', + 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL' +]; // Calculate the checksum digit // https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit @@ -72,7 +74,7 @@ class EAN13 extends EAN { leftEncode() { const data = this.data.substr(1, 6); - const structure = constants.EAN13_STRUCTURE[this.data[0]]; + const structure = EAN13_STRUCTURE[this.data[0]]; return super.leftEncode(data, structure); } diff --git a/apps/cards/constants.js b/apps/cards/constants.js deleted file mode 100644 index ead651fdd..000000000 --- a/apps/cards/constants.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * JS source adapted from https://github.com/lindell/JsBarcode - * - * The MIT License (MIT) - * - * Copyright (c) 2016 Johan Lindell (johan@lindell.me) - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -module.exports = { - // Standard start end and middle bits - SIDE_BIN : '101', - MIDDLE_BIN : '01010', - - BINARIES : { - 'L': [ // The L (left) type of encoding - '0001101', '0011001', '0010011', '0111101', '0100011', - '0110001', '0101111', '0111011', '0110111', '0001011' - ], - 'G': [ // The G type of encoding - '0100111', '0110011', '0011011', '0100001', '0011101', - '0111001', '0000101', '0010001', '0001001', '0010111' - ], - 'R': [ // The R (right) type of encoding - '1110010', '1100110', '1101100', '1000010', '1011100', - '1001110', '1010000', '1000100', '1001000', '1110100' - ], - 'O': [ // The O (odd) encoding for UPC-E - '0001101', '0011001', '0010011', '0111101', '0100011', - '0110001', '0101111', '0111011', '0110111', '0001011' - ], - 'E': [ // The E (even) encoding for UPC-E - '0100111', '0110011', '0011011', '0100001', '0011101', - '0111001', '0000101', '0010001', '0001001', '0010111' - ] - }, - - // Define the EAN-13 structure - EAN13_STRUCTURE : [ - 'LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', - 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL' - ] -} \ No newline at end of file diff --git a/apps/cards/encode.js b/apps/cards/encode.js index 6390431f1..7cb1fcc87 100644 --- a/apps/cards/encode.js +++ b/apps/cards/encode.js @@ -24,13 +24,34 @@ * IN THE SOFTWARE. */ -const constants = require("cards.constants.js"); +const BINARIES = { + 'L': [ // The L (left) type of encoding + '0001101', '0011001', '0010011', '0111101', '0100011', + '0110001', '0101111', '0111011', '0110111', '0001011' + ], + 'G': [ // The G type of encoding + '0100111', '0110011', '0011011', '0100001', '0011101', + '0111001', '0000101', '0010001', '0001001', '0010111' + ], + 'R': [ // The R (right) type of encoding + '1110010', '1100110', '1101100', '1000010', '1011100', + '1001110', '1010000', '1000100', '1001000', '1110100' + ], + 'O': [ // The O (odd) encoding for UPC-E + '0001101', '0011001', '0010011', '0111101', '0100011', + '0110001', '0101111', '0111011', '0110111', '0001011' + ], + 'E': [ // The E (even) encoding for UPC-E + '0100111', '0110011', '0011011', '0100001', '0011101', + '0111001', '0000101', '0010001', '0001001', '0010111' + ] +}; // Encode data string const encode = (data, structure, separator) => { let encoded = data .split('') - .map((val, idx) => constants.BINARIES[structure[idx]]) + .map((val, idx) => BINARIES[structure[idx]]) .map((val, idx) => val ? val[data[idx]] : ''); if (separator) { diff --git a/apps/cards/metadata.json b/apps/cards/metadata.json index d17ff4a51..c8d19a375 100644 --- a/apps/cards/metadata.json +++ b/apps/cards/metadata.json @@ -16,7 +16,6 @@ {"name":"cards.qrcode.js","url":"qrcode.js"}, {"name":"cards.codabar.js","url":"codabar.js"}, {"name":"cards.code39.js","url":"code39.js"}, - {"name":"cards.constants.js","url":"constants.js"}, {"name":"cards.EAN.js","url":"EAN.js"}, {"name":"cards.EAN8.js","url":"EAN8.js"}, {"name":"cards.EAN13.js","url":"EAN13.js"},