[BUG]:network.open wrong error argument on callback in connect using bun
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- bun, javascript, node.js
- Domaine
- networking
Piste de recherche
Commencez par localiser Network.prototype.open et comparer la gestion de son callback sous Node.js et Bun avec la reproduction incluse dans l’issue. Le travail est terminé lorsque le callback reçoit une valeur d’erreur cohérente lors d’un échec de connexion dans les deux runtimes ; réexécutez l’exemple présenté pour vérifier le comportement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description of the bug
Using bun, escpos-network behaves differently in the open method, specifically the error argument.
It is set to a Socket instance when using bun (1.1.45+196621f25), not using node (22.8.0)
I also opened a bug in bun.
Steps To Reproduce
I extracted the relevant code here and call both open (with a fix attempt) and open2 (current implementation in main). open2 fail with bun.
const net = require('net');
const EventEmitter = require('events');
const util = require('util');
function Network(address, port) {
EventEmitter.call(this);
this.address = address;
this.port = port || 9100;
this.device = new net.Socket();
return this;
}
util.inherits(Network, EventEmitter);
Network.prototype.open = function(callback) {
const self = this;
this.device.on('error', (err) => {
console.log('error', err);
callback && callback(err, self.device);
}).on('data', buf => {
// console.log('printer say:', buf);
}).connect(this.port, this.address, function(err) {
if (err && err instanceof Error) {
console.log('connect error', err);
callback && callback(err, self.device);
return;
}
self.emit('connect', self.device);
callback && callback(null, self.device);
});
return this;
};
Network.prototype.open2 = function(callback){
var self = this;
this.device.on("error", (err) => {
callback && callback(err, self.device);
}).on('data', buf => {
// console.log('printer say:', buf);
}).connect(this.port, this.address, function(err){
self.emit('connect', self.device);
callback && callback(err, self.device);
});
return this;
};
// Usage example
let device = new Network('192.168.1.100', 9100);
device.open(function(error, device) {
if (error) {
console.log('Connection error open');
return;
}
console.log('Connected to device open');
device.end();
});
device = new Network('192.168.1.100', 9100);
device.open2(function(error, device) {
if (error) {
console.log('Connection error open2:');
return;
}
console.log('Connected to device open2');
device.end();
});
Additional Information
No response
- Langage dominant
- TypeScript
- Étoiles
- 1.6k
- Forks
- 442
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de lsongdev/node-escpos
-
[BUG]:Ouvertebug
Difficulté 4/5 3-5 jours Accessibilité débutants 15/100
lsongdev/node-escpos#447 ·
-
[BUG]: AJCBOSEOuvertebug
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 10/100
lsongdev/node-escpos#446 ·
-
Capt BilalOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 1/100
lsongdev/node-escpos#443 ·
-
bug
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
lsongdev/node-escpos#442 · 2 réactions ·
-
[BUG]: usb.on is not a functionOuvertebug
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
lsongdev/node-escpos#441 · 5 commentaires · 1 réaction ·
Toutes les issues de lsongdev/node-escpos
Issues similaires
-
ci-cd desktop size:low telemetry-improvement telemetry-round-1
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
vfarcic/dot-agent-deck#2079 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
Broken links in the docsOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
status:in-linear
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
n8n-io/n8n#43006 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
🔊 a11y
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
betagouv/mon-entreprise#4726 ·
Les mainteneurs répondent en général sous 9 jours