feat: return multiple as array instead of object

This commit is contained in:
dgreif
2016-02-09 07:30:22 -06:00
parent 9a9b8de4bc
commit 2c14a4897d
3 changed files with 29 additions and 26 deletions
+11 -9
View File
@@ -267,21 +267,23 @@ export default {
return decodeFromBoundingBox(box);
},
decodeFromBoundingBoxes: function(boxes) {
var i, result, barcodes = [];
var i, result,
barcodes = [],
multiple = config.multiple;
for ( i = 0; i < boxes.length; i++) {
result = decodeFromBoundingBox(boxes[i]);
if (result && result.codeResult) {
result.box = boxes[i];
if (!config.multiple) {
return result;
}
const box = boxes[i];
result = decodeFromBoundingBox(box) || {};
result.box = box;
if (multiple) {
barcodes.push(result);
} else if (result.codeResult) {
return result;
}
}
if (config.multiple) {
if (multiple) {
return {
barcodes
};
+13 -13
View File
@@ -178,6 +178,10 @@ function transformResult(result) {
moveLine(result.line);
}
if (result.box) {
moveBox(result.box);
}
if (result.boxes && result.boxes.length > 0) {
for (i = 0; i < result.boxes.length; i++) {
moveBox(result.boxes[i]);
@@ -202,39 +206,35 @@ function transformResult(result) {
}
function addResult (result, imageData) {
var i;
if (!imageData || !_resultCollector) {
return;
}
if (result.barcodes) {
for (i = 0; i < result.barcodes.length; i++) {
addResult(result.barcodes[i], imageData);
}
return;
}
if (result.codeResult) {
result.barcodes.filter(barcode => barcode.codeResult)
.forEach(barcode => addResult(barcode, imageData));
} else if (result.codeResult) {
_resultCollector.addResult(imageData, _inputStream.getCanvasSize(), result.codeResult);
}
}
function hasCodeResult (result) {
return result && result.barcodes ?
return result && (result.barcodes ?
result.barcodes.some(barcode => barcode.codeResult) :
result.codeResult;
result.codeResult);
}
function publishResult(result, imageData) {
const resultToPublish = result && (result.barcodes || result);
if (result && _onUIThread) {
transformResult(result);
addResult(result, imageData);
}
Events.publish("processed", result);
Events.publish("processed", resultToPublish);
if (hasCodeResult(result)) {
Events.publish("detected", result);
Events.publish("detected", resultToPublish);
}
}