UNPKG

@signalk/streams

Version:

Utilities for handling streams of Signal K data

37 lines (36 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const stream_1 = require("stream"); class FolderStream extends stream_1.Transform { folder; fileIndex = 0; constructor(options) { super({ objectMode: false }); this.folder = options.folder; } pipe(pipeTo) { const files = (0, fs_1.readdirSync)(this.folder); const pipeNextFile = () => { const file = files[this.fileIndex]; if (!file) { pipeTo.end(); return; } const fileStream = (0, fs_1.createReadStream)(this.folder + '/' + file); fileStream.pipe(pipeTo, { end: false }); fileStream.on('end', () => { this.fileIndex++; if (this.fileIndex === files.length) { pipeTo.end(); } else { pipeNextFile(); } }); }; pipeNextFile(); return pipeTo; } } exports.default = FolderStream;