UNPKG

rudyjs

Version:
41 lines (40 loc) 1.43 kB
"use strict"; 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;