rudyjs
Version:
R-U-DEAD-YET ?
41 lines (40 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const stream_1 = require("stream");
const fs = require("fs");
const path = require("path");
const logger_1 = require("../utils/logger");
class StreamService {
constructor(config) {
this.serviceName = "Stream_Service";
this.delay = config.delay;
this.stream = new stream_1.Readable();
this.stream._read = () => {
setTimeout(() => {
if (StreamService.cachedPayload == null) {
const payload = this.getPayload();
StreamService.cachedPayload = payload;
}
this.stream.push(StreamService.cachedPayload);
}, this.getRandomNumber() * 1000);
};
}
getRandomReadStream() {
return this.stream;
}
endStream() {
logger_1.default.verbose({ message: "Closing Stream", category: this.serviceName });
this.stream.destroy();
}
getPayload() {
logger_1.default.verbose({ message: "Reading file payload.txt", category: this.serviceName });
return fs.readFileSync(path.join(__dirname, "..", "payload", "payload.txt"), "utf8").toString();
}
getRandomNumber() {
var hello = Math.floor((Math.random() * this.delay) + 1);
console.log(hello);
return hello;
}
}
StreamService.cachedPayload = null;
exports.default = StreamService;