Skip to content

Detect barcode scanner and keyboard input events separately in your web page or electronJS application with ease.

License

Notifications You must be signed in to change notification settings

pirtwo/scan-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scan Detector

Detect barcode scanner and keyboard input events separately in your web or electronJS application with ease.

install

$ npm i scan-detector --save

Quick usage

const ScanDetector = require("scan-detector");

let detector = ScanDetector();

detector.attach();

document.addEventListener("scanner", (e) => {
  // handle scan code
});

document.addEventListener("keyboard", (e) => {
  // handle keyboard input
});

detector.detach();

Options

let sd = ScanDetector({ element: document, minCodeLength: 4 });
Option Type Default Description
element html element document html element to attach and listen for inputs
prefix array (char codes) [] these characters will be discarded
suffix array (char codes) [9, 13] possible end characters, will be discarded
avgCharTime number (ms) 30 average time between each scanner keydown event
minCodeLength number 6 min length of scanned code
customEncoder function(number keyCode) null will be called on each keydown event
onScanFinish function(string scanCode) null will be called when scan is finished
preventDefault bool false prevent default keydown behavior
stopPropagation bool false stops event propagation
debugMode bool false logs each keydown event in console

Methods

setOptions(options):

seta detector options.

getOptions():

returns detector options.

attach():

attach detector to the element, it will listen to keydown event in the element.

detach():

detach detector from element.

Example

const ScanDetector = require("scan-detector");

let input = document.getElementById("text_input");

let detector = ScanDetector({
  element: document,
  avgCharTime: 30,
  minCodeLength: 6,
  customEncoder: (event) => {
    return event.key;
  },
  onScanFinish: (code) => {
    return [...code.matchAll(/Alt([0-9]{3})/g)].reduce((t, v) => {
      return (t += String.fromCharCode(+v[1]));
    }, "");
  },
});

detector.attach();

document.addEventListener("scanner", (e) => {
  input.value = e.detail;
});

document.addEventListener("keyboard", (e) => {
  console.log(e);
});

About

Detect barcode scanner and keyboard input events separately in your web page or electronJS application with ease.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published