From 748627b3d5f8fb8ff2482bc7879e5f34c461255b Mon Sep 17 00:00:00 2001 From: siiky Date: Tue, 10 Sep 2024 15:27:28 +0100 Subject: [PATCH 1/2] fix: PDF417 parsing --- lib/compliance/parsepdf417.js | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/lib/compliance/parsepdf417.js b/lib/compliance/parsepdf417.js index 8b361401b..d7c2ac8dd 100644 --- a/lib/compliance/parsepdf417.js +++ b/lib/compliance/parsepdf417.js @@ -2,8 +2,6 @@ module.exports = {parse} const crypto = require('crypto') -const _ = require('lodash/fp') - const parsers = [ require('./parsepdf417-us'), require('./parsepdf417-ca-bc'), @@ -16,19 +14,13 @@ function generateUID (subfile) { } function parse (data) { - let result = null - - const dataStr = data.toString() - - const singleParse = parser => { - const r = parser.parse(dataStr) - if (!r) return true - - result = r - return false + data = data.toString() + const result = parsers + .map(parser => parser.parse(data)) + .find(result => !!result) || null + if (result) { + result.uid = generateUID(data) + result.raw = data } - - _.forEach(singleParse, parsers) - - return _.set('uid', generateUID(dataStr), result) + return result } From cbff1791fa0abc682b0a95eb85380afe864c78c2 Mon Sep 17 00:00:00 2001 From: siiky Date: Tue, 10 Sep 2024 15:34:38 +0100 Subject: [PATCH 2/2] refactor: simplify `scanPDF417()` --- lib/scanner-genmega.js | 7 +------ lib/scanner.js | 7 ++----- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/lib/scanner-genmega.js b/lib/scanner-genmega.js index 0d7ddb12d..dd549f4f9 100644 --- a/lib/scanner-genmega.js +++ b/lib/scanner-genmega.js @@ -31,13 +31,8 @@ function scanPDF417 (callback) { .then((code, data) => { gmrunning = false if (code < 0) return callback(new Error(returnValuesTable[code])) - if (!data) return callback(null, null) - - const parsed = Pdf417Parser.parse(data) - if (!parsed) return callback(null, null) - parsed.raw = data - callback(null, parsed) + callback(null, Pdf417Parser.parse(data)) }) } diff --git a/lib/scanner.js b/lib/scanner.js index 4c9879ab2..dcc23d425 100644 --- a/lib/scanner.js +++ b/lib/scanner.js @@ -194,13 +194,10 @@ const scanPDF417 = (callback, idCardStillsCallback) => { return result }) .then(result => Promise.all([ - result, - Pdf417Parser.parse(result), + result ? Pdf417Parser.parse(result) : null, saveFailedScans(tmpdirs) ])) - .then(([result, parsed, _]) => { - parsed = parsed || null - if (parsed) parsed.raw = result.toString() + .then(([parsed, _]) => { callback(null, parsed) }) .catch(err => {