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

53 lines (43 loc) 1.02 kB
import { Buffer } from 'buffer'; export class BufferHelper { buffers: Buffer[]; size: number; constructor() { this.buffers = []; this.size = 0; } get length() { return this.size; } concat(buffer: Buffer): BufferHelper { this.buffers.push(buffer); this.size += buffer.length; return this; } empty(): BufferHelper { this.buffers = []; this.size = 0; return this; } toBuffer(): Buffer { // @ts-ignore return Buffer.concat(this.buffers, this.size); } toString(encoding: BufferEncoding): string { return this.toBuffer().toString(encoding); } load(stream: any, callback: any) { stream.on('data', (trunk: Buffer) => { this.concat(trunk); }); stream.on('end', () => { callback(null, this.toBuffer()); }); stream.once('error', callback); } bytesToString(data: Uint8Array, type: 'base64' | 'hex') { this.concat(Buffer.from(data)); const buffer = this.toBuffer(); return buffer.toString(type); } }