A simple Node.js library to open a cash drawer connected through a specified printer. Ideal for POS systems that need to trigger cash drawers programmatically.
Install via npm:
npm install @achyutlabsau/cashdrawer
This package lets you open a cash drawer by specifying the printer's name associated with the cash drawer. The drawer will trigger based on the standard escape command sent to the printer.
// ESM
import { openCashDrawer } from '@achyutlabsau/cashdrawer';
// Common JS
const { openCashDrawer } = require('@achyutlabsau/cashdrawer');
To open the cash drawer, call the openCashDrawer
function and pass the name of the printer connected to your cash drawer.
openCashDrawer("your-printer-name");
import { openCashDrawer } from '@achyutlabsau/cashdrawer';
const printerName = 'EPSON_TM_T20III';
const result = openCashDrawer(printerName)
if(!result.success) {
console.log(result.errorMessage)
} else {
console.log('Cash drawer opened successfully!')
}
-
printerName (string) - The name of the printer connected to the cash drawer. This should match the exact name your system uses for the printer.
-
Returns: an object with the following properties:
- success (boolean): Indicates whether the cash drawer opened successfully.
- errorMessage (string): A description of the error if the operation failed.
- errorCode (DrawerErrorCodes): A specific error code representing the type of failure.
The getAvailablePrinters
function returns a list of printers available on the system. This is useful for identifying the exact name of the printer connected to your cash drawer.
import { getAvailablePrinters } from '@achyutlabsau/cashdrawer';
const printers = getAvailablePrinters();
console.log('Available Printers:', printers);
This package has been tested with printers that support ESC/POS commands, such as:
- EPSON TM Series
- Star TSP Series
Contributions are welcome! If you encounter a bug or have a feature request, please open an issue on GitHub.
This project is licensed under the MIT License.