UNPKG

@tillpos/rn-receipt-printer-utils

Version:

Fork of react-native-printer. A React Native Library to support USB/BLE/Net printer

88 lines (77 loc) 4.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RN_THERMAL_RECEIPT_PRINTER_EVENTS = exports.NetPrinterEventEmitter = exports.NetPrinter = exports.BLEPrinter = exports.USBPrinter = exports.PrinterSeries = exports.PrinterBrand = void 0; var _reactNative = require("react-native"); var _epson = require("./epson"); const RNUSBPrinter = _reactNative.NativeModules.RNUSBPrinter; const RNBLEPrinter = _reactNative.NativeModules.RNBLEPrinter; const RNNetPrinter = _reactNative.NativeModules.RNNetPrinter; let PrinterBrand; exports.PrinterBrand = PrinterBrand; (function (PrinterBrand) { PrinterBrand["EPSON"] = "EPSON"; PrinterBrand["STAR"] = "STAR"; PrinterBrand["OTHER"] = "OTHER"; })(PrinterBrand || (exports.PrinterBrand = PrinterBrand = {})); let PrinterSeries; exports.PrinterSeries = PrinterSeries; (function (PrinterSeries) { PrinterSeries["TM_M30"] = "TM_M30"; PrinterSeries["TM_M30II"] = "TM_M30II"; PrinterSeries["TM_U220"] = "TM_U220"; PrinterSeries["TM_T82"] = "TM_T82"; PrinterSeries["TM_L90"] = "TM_L90"; })(PrinterSeries || (exports.PrinterSeries = PrinterSeries = {})); // Timeout for returning response to client const SDK_RESPONSE_TIMEOUT = 30000; // Promise with timeout const promiseWithTimeout = promise => { let timeoutId; const timeoutPromise = new Promise((_, reject) => { timeoutId = setTimeout(() => { reject(new Error('Request timed out')); }, SDK_RESPONSE_TIMEOUT); }); return { promiseOrTimeout: Promise.race([promise, timeoutPromise]), // @ts-ignore timeoutId }; }; const USBPrinter = { connectAndSend: (vendorId, productId, data, brand) => { return new Promise((resolve, reject) => RNUSBPrinter.connectAndSend(vendorId, productId, data.toString('base64'), brand, printer => resolve(printer), error => reject(error))); } }; exports.USBPrinter = USBPrinter; const BLEPrinter = { connectAndSend: (bdAddress, data, brand, series = PrinterSeries.TM_M30) => { const { promiseOrTimeout, timeoutId } = promiseWithTimeout(new Promise((resolve, reject) => brand === PrinterBrand.EPSON ? _epson.EpsonUtil.connectAndSend(bdAddress, data, false, series, printer => resolve(printer), error => reject(error)) : RNBLEPrinter.connectAndSend(bdAddress, data.toString('base64'), brand, series, printer => resolve(printer), error => reject(error)))); return new Promise((resolve, reject) => promiseOrTimeout.then(printer => resolve(printer)).catch(error => reject(error)).finally(() => clearTimeout(timeoutId))); } }; exports.BLEPrinter = BLEPrinter; const NetPrinter = { connectAndSend: (host, port, data, brand, series = PrinterSeries.TM_M30) => { const { promiseOrTimeout, timeoutId } = promiseWithTimeout(new Promise((resolve, reject) => brand === PrinterBrand.EPSON ? _epson.EpsonUtil.connectAndSend(host, data, true, series, printer => resolve(printer), error => reject(error)) : RNNetPrinter.connectAndSend(host, port, data.toString('base64'), brand, series, printer => resolve(printer), error => reject(error)))); return new Promise((resolve, reject) => promiseOrTimeout.then(printer => resolve(printer)).catch(error => reject(error)).finally(() => clearTimeout(timeoutId))); } }; exports.NetPrinter = NetPrinter; const NetPrinterEventEmitter = new _reactNative.NativeEventEmitter(RNNetPrinter); exports.NetPrinterEventEmitter = NetPrinterEventEmitter; let RN_THERMAL_RECEIPT_PRINTER_EVENTS; exports.RN_THERMAL_RECEIPT_PRINTER_EVENTS = RN_THERMAL_RECEIPT_PRINTER_EVENTS; (function (RN_THERMAL_RECEIPT_PRINTER_EVENTS) { RN_THERMAL_RECEIPT_PRINTER_EVENTS["EVENT_NET_PRINTER_SCANNED_SUCCESS"] = "scannerResolved"; RN_THERMAL_RECEIPT_PRINTER_EVENTS["EVENT_NET_PRINTER_SCANNING"] = "scannerRunning"; RN_THERMAL_RECEIPT_PRINTER_EVENTS["EVENT_NET_PRINTER_SCANNED_ERROR"] = "registerError"; })(RN_THERMAL_RECEIPT_PRINTER_EVENTS || (exports.RN_THERMAL_RECEIPT_PRINTER_EVENTS = RN_THERMAL_RECEIPT_PRINTER_EVENTS = {})); //# sourceMappingURL=index.js.map