68 lines
1.5 KiB
JavaScript
Raw Normal View History

"use strict";
const Emitter = require("events");
class TransportStub extends Emitter {
constructor(path /*, options, openCallback*/) {
super();
this.isOpen = true;
this.baudRate = 0;
this.path = path;
}
write(buffer) {
// Tests are written to work with arrays not buffers
// this shouldn't impact the data, just the container
// This also should be changed in future test rewrites
/* istanbul ignore else */
if (Buffer.isBuffer(buffer)) {
buffer = Array.from(buffer);
}
this.lastWrite = buffer;
this.emit("write", buffer);
}
static list() {
/* istanbul ignore next */
return Promise.resolve([]);
}
}
// This trash is necessary for stubbing with sinon.
TransportStub.SerialPort = TransportStub;
let com;
let error;
let SerialPort;
try {
/* istanbul ignore else */
if (process.env.IS_TEST_MODE) {
com = TransportStub;
} else {
SerialPort = require("serialport").SerialPort;
com = SerialPort;
}
} catch (err) {
/* istanbul ignore next */
error = err;
}
/* istanbul ignore if */
if (com == null) {
if (process.env.IS_TEST_MODE) {
com = TransportStub;
} else {
console.log("It looks like serialport didn't install properly.");
console.log(
"More information can be found here https://serialport.io/docs/guide-installation"
);
console.log(`The result of requiring the package is: ${SerialPort}`);
console.log(error);
throw "Missing serialport dependency";
}
}
module.exports = com;