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

49 lines (43 loc) 1.61 kB
import { NativeModules, NativeEventEmitter, Platform } from 'react-native'; import type { Spec as NativeEscPosPrinterSpec } from './NativeEscPosPrinter'; import type { Spec as NativeEscPosPrinterDiscoverySpec } from './NativeEscPosPrinterDiscovery'; const isTurboModuleEnabled = !!global.__turboModuleProxy || !!global.RN$Bridgeless; let EscPosPrinter: NativeEscPosPrinterSpec; let EscPosPrinterDiscovery: NativeEscPosPrinterDiscoverySpec; if (isTurboModuleEnabled) { EscPosPrinter = require('./NativeEscPosPrinter').default; EscPosPrinterDiscovery = require('./NativeEscPosPrinterDiscovery').default; } else { const { EscPosPrinterDiscovery: OldArchEscPosPrinterDiscovery, EscPosPrinter: OldArchEscPosPrinter, } = NativeModules; const DiscoveryEventEmitter = new NativeEventEmitter( OldArchEscPosPrinterDiscovery ); EscPosPrinterDiscovery = { ...NativeModules.EscPosPrinterDiscovery, onDiscovery: (callback) => { return DiscoveryEventEmitter.addListener('onDiscovery', callback); }, ...(Platform.OS === 'android' ? { enableLocationSettingSuccess: (callback) => { return DiscoveryEventEmitter.addListener( 'enableLocationSettingSuccess', callback ); }, enableLocationSettingFailure: (callback) => { return DiscoveryEventEmitter.addListener( 'enableLocationSettingFailure', callback ); }, } : {}), }; EscPosPrinter = OldArchEscPosPrinter; } export { EscPosPrinter, EscPosPrinterDiscovery };