UNPKG

react-native-esc-pos-printer

Version:

An unofficial React Native library for printing on an EPSON TM printer with the Epson ePOS SDK for iOS and Epson ePOS SDK for Android

106 lines (105 loc) 2.93 kB
"use strict"; import { PrinterWrapper } from "./PrinterWrapper.js"; import { PrinterModelLang } from "./constants/index.js"; import { addTextLine, addViewShot, monitorPrinter, tryToConnectUntil } from "./printHelpers/index.js"; export class Printer { static instances = new Map(); constructor({ target, deviceName, lang = PrinterModelLang.MODEL_ANK }) { if (Printer.instances.has(target)) { return Printer.instances.get(target); } this.deviceName = deviceName; this.lang = lang; this.printerWrapper = new PrinterWrapper(target); this.initQueue(); Printer.instances.set(target, this); } initQueue() { const PQueue = require('p-queue/dist').default; this.queue = new PQueue({ concurrency: 1 }); } addQueueTask(task) { return this.queue.add(task); } static addTextLine = addTextLine; static monitorPrinter = monitorPrinter; static tryToConnectUntil = tryToConnectUntil; static addViewShot = addViewShot; get currentFontWidth() { return this.printerWrapper.currentFontWidth; } init = () => { return this.printerWrapper.init({ deviceName: this.deviceName, lang: this.lang }); }; connect = async timeout => { await this.init(); return this.printerWrapper.connect(timeout); }; disconnect = () => { return this.printerWrapper.disconnect(); }; addText = data => { return this.printerWrapper.addText(data); }; addFeedLine = line => { return this.printerWrapper.addFeedLine(line); }; addLineSpace = linespc => { return this.printerWrapper.addLineSpace(linespc); }; sendData = timeout => { return this.printerWrapper.sendData(timeout); }; addCut = type => { return this.printerWrapper.addCut(type); }; getPrinterSetting = (type, timeout) => { return this.printerWrapper.getPrinterSetting(type, timeout); }; getStatus = () => { return this.printerWrapper.getStatus(); }; addImage = params => { return this.printerWrapper.addImage(params); }; addBarcode = params => { return this.printerWrapper.addBarcode(params); }; addSymbol = params => { return this.printerWrapper.addSymbol(params); }; addCommand = uint8Array => { return this.printerWrapper.addCommand(uint8Array); }; addPulse = params => { return this.printerWrapper.addPulse(params); }; addTextAlign = params => { return this.printerWrapper.addTextAlign(params); }; addTextSize = async params => { await this.printerWrapper.addTextSize(params); }; addTextSmooth = smooth => { return this.printerWrapper.addTextSmooth(smooth); }; addTextStyle = params => { return this.printerWrapper.addTextStyle(params); }; addTextLang = lang => { return this.printerWrapper.addTextLang(lang); }; clearCommandBuffer = () => { return this.printerWrapper.clearCommandBuffer(); }; } //# sourceMappingURL=Printer.js.map