UNPKG

@ap-mitch/nfc-pcsc

Version:

Easy reading and writing NFC tags and cards

63 lines (46 loc) 1.17 kB
"use strict"; import pcsclite from "@ap-mitch/pcsclite"; import EventEmitter from "events"; import Reader from "./Reader"; import ACR12XReader from "./ACR12XReader"; class NFC extends EventEmitter { pcsc = null; logger = null; constructor(logger) { super(); this.pcsc = pcsclite(); if (logger) { this.logger = logger; } else { this.logger = { log: function() {}, debug: function() {}, info: function() {}, warn: function() {}, error: function() {} }; } this.pcsc.on("reader", reader => { this.logger.debug("new reader detected", reader.name); // create special object for ARC12XU reader with commands specific to this reader if (reader.name.toLowerCase().indexOf("acr12") !== -1) { const device = new ACR12XReader(reader, this.logger); this.emit("reader", device); return; } const device = new Reader(reader, this.logger); this.emit("reader", device); }); this.pcsc.on("error", err => { this.logger.error("PCSC error", err.message); this.emit("error", err); }); } get readers() { return this.pcsc.readers; } close() { this.pcsc.close(); } } export default NFC;