config.debug ignored. console.warn only contains debug info
Hello. I've had fun with the Barcode Detection API, but found that Safari and Chrome doesn't support it on iOS. I have found your library looking for a way to work around the issues and polyfill the API.
Every time I call Quagga to decodeSingle, it adds a bunch of warnings to the console to the point that its difficult to debug anything else when streaming video. It seems that these warnings are diagnostic information for debugging rather than actual warnings. I have tried changing the configuration debug setting to false, but the warnings still appear.
* initCanvas getCanvasAndContext
* initCanvas getCanvasAndContext
*** frame_grabber_browser: willReadFrequency=undefined canvas= <canvas class="imgBuffer" width="800" height="500">
Invalid asm.js: Unexpected token
Here is my code. In this case, the src is a data url from canvas.toDataURL()
// https://cdn.jsdelivr.net/npm/@ericblade/quagga2/dist/quagga.min.js
const config = {
src,
decoder: {
readers: ['code_128_reader']
},
debug: false
};
const callback = result => {
if(result) {
console.log('got a result', result);
} else {
console.log('nothing');
}
};
window.Quagga.decodeSingle(config, callback)
I reviewed the quagga2 source code and found that all of the console messages are hard-coded to write output without checking any of the configuration debug settings.
https://github.com/search?q=repo%3Aericblade%2Fquagga2%20console.warn&type=code
Thank you for filing an issue! Please be patient. :-)
The workaround that I'm using is to hijack the console.warn method temporarily and restore it after the decoder responds.
const warn = console.warn;
console.warn = () => {};
const config = {
src,
decoder: {
readers: ['code_128_reader']
},
debug: false
};
const callback = result => {
console.warn = warn.bind(console);
if(result) {
console.log('got a result', result);
}
resolve([])
};
window.Quagga.decodeSingle(config, callback)
Thanks for reporting that, probably left some stuff in there while I was diagnosing a previous failure. My bad.
I haven't had much time to go routing around in my working application lately. Apologies. :D
Apologies for the incredibly long time to wait on this. Fixed in #574