TypeScript SDK for Nexgo device APIs (Printer, Scanner, Pinpad, Beeper)
npm install nexgo-webview-sdkbash
npm install nexgo-sdk
`
Features
* 🎯 Framework-agnostic core - Use with any JavaScript framework or vanilla JS
* ⚛️ React hooks - Optional React-specific hooks for easy integration
* 📦 TypeScript support - Full type definitions included
* 🌲 Tree-shakeable - Import only what you need
* 🔌 Modular - Use individual devices or the complete SDK
Usage
$3
`typescript
import { NexgoSDK } from 'nexgo-sdk';
// Initialize the SDK
const nexgo = new NexgoSDK();
// Check device availability
console.log(nexgo.getAvailability());
// { printer: true, scanner: true, pinpad: true, beeper: true }
// Use the printer
nexgo.printer.initPrinter();
nexgo.printer.appendPrnStr('Hello World', 24, AlignEnum.CENTER);
nexgo.printer.startPrint();
// Use the scanner
nexgo.scanner.onScan((result) => {
console.log('Scanned:', result.data);
});
nexgo.scanner.startScan();
// Use the beeper
nexgo.beeper.success(); // Quick success beep
`
$3
`typescript
import { NexgoPrinter, NexgoScanner } from 'nexgo-sdk';
const printer = new NexgoPrinter();
const scanner = new NexgoScanner();
if (printer.isAvailable()) {
printer.initPrinter();
// ... use printer
}
`
$3
`typescript
import { useNexgo } from 'nexgo-sdk/react';
import { AlignEnum } from 'nexgo-sdk';
function MyComponent() {
const { printer, scanner, beeper, isReady, availability } = useNexgo();
const handlePrint = () => {
if (!printer.isReady) return;
printer.printer.initPrinter();
printer.printer.appendPrnStr('Receipt', 32, AlignEnum.CENTER, true);
printer.printer.appendPrnStr('Item 1', 24, AlignEnum.LEFT);
printer.printer.feedPaper(2);
printer.printer.startPrint();
beeper.success(); // Success beep
};
const handleScan = () => {
if (!scanner.isReady) return;
scanner.startScan({ timeout: 30000 });
};
// Access scan results
useEffect(() => {
if (scanner.lastScan?.success) {
console.log('Scanned:', scanner.lastScan.data);
beeper.notification();
}
}, [scanner.lastScan]);
return (
);
}
`
$3
`typescript
import { usePrinter, useScanner, useBeeper } from 'nexgo-sdk/react';
function PrintComponent() {
const { printer, isReady, error } = usePrinter();
if (error) return Error: {error};
if (!isReady) return Printer not available;
// Use printer...
}
`
API Reference
$3
#### NexgoSDK
Main SDK class providing access to all devices.
`typescript
const nexgo = new NexgoSDK();
// Properties
nexgo.printer: NexgoPrinter
nexgo.scanner: NexgoScanner
nexgo.pinpad: NexgoPinpad
nexgo.beeper: NexgoBeeper
// Methods
nexgo.isFullyAvailable(): boolean
nexgo.getAvailability(): { printer: boolean, scanner: boolean, ... }
nexgo.initAll(): { printer: SdkResult, scanner: SdkResult, ... }
`
#### NexgoPrinter
`typescript
const printer = new NexgoPrinter();
// Initialization
printer.initPrinter(): SdkResult
printer.getStatus(): SdkResult
// Printing
printer.appendPrnStr(text, fontSize, align, bold?): SdkResult
printer.appendImage(bitmap, align): SdkResult
printer.appendBarcode(content, width, height, textPos, format, align, showHri?): SdkResult
printer.appendQRcode(content, size, align): SdkResult
// Configuration
printer.setLetterSpacing(spacing): void
printer.setGray(level): void
// Control
printer.feedPaper(lines): void
printer.cutPaper(): void
printer.startPrint(): void
printer.printTest(): void
`
#### NexgoScanner
`typescript
const scanner = new NexgoScanner();
scanner.initScanner(): SdkResult
scanner.startScan(config?): void
scanner.stopScan(): void
scanner.getLastScanResult(): ScanResult | null
scanner.onScan(callback: (result: ScanResult) => void): void
scanner.offScan(): void
`
#### NexgoPinpad
`typescript
const pinpad = new NexgoPinpad();
pinpad.initPinpad(): SdkResult
pinpad.startPinEntry(config?): void
pinpad.cancelPinEntry(): void
pinpad.getEncryptedPin(): PinResult | null
pinpad.onPinEntry(callback: (result: PinResult) => void): void
pinpad.offPinEntry(): void
`
#### NexgoBeeper
`typescript
const beeper = new NexgoBeeper();
beeper.initBeeper(): SdkResult
beeper.beep(duration?): void
beeper.beepTone(tone, duration?): void
// Convenience methods
beeper.success(): void
beeper.error(): void
beeper.warning(): void
beeper.notification(): void
beeper.stopBeep(): void
`
$3
#### useNexgo()
`typescript
const {
isReady,
availability,
printer,
scanner,
pinpad,
beeper
} = useNexgo();
`
#### usePrinter()
`typescript
const { printer, isReady, error } = usePrinter();
`
#### useScanner()
`typescript
const {
scanner,
isReady,
error,
lastScan,
startScan,
stopScan
} = useScanner();
`
#### usePinpad()
`typescript
const {
pinpad,
isReady,
error,
lastPin,
startPinEntry,
cancelPinEntry
} = usePinpad();
`
#### useBeeper()
`typescript
const {
beeper,
isReady,
error,
beep,
beepTone,
success,
error: errorBeep,
warning,
notification,
stopBeep
} = useBeeper();
`
$3
`typescript
import {
SdkResult,
AlignEnum,
BarcodeFormatEnum,
GrayLevelEnum,
ScanDecodeType,
BeeperTone,
BeeperDuration,
PinEntryMode
} from 'nexgo-sdk';
`
TypeScript
This package includes full TypeScript definitions. All types are exported:
`typescript
import type {
FontEntity,
LineOptionEntity,
ScanResult,
ScannerConfig,
PinResult,
PinpadConfig
} from 'nexgo-sdk';
``