| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });const stream_1 = require("stream");const fsStat = require("@nodelib/fs.stat");const fsWalk = require("@nodelib/fs.walk");const reader_1 = require("./reader");class ReaderStream extends reader_1.default {    constructor() {        super(...arguments);        this._walkStream = fsWalk.walkStream;        this._stat = fsStat.stat;    }    dynamic(root, options) {        return this._walkStream(root, options);    }    static(patterns, options) {        const filepaths = patterns.map(this._getFullEntryPath, this);        const stream = new stream_1.PassThrough({ objectMode: true });        stream._write = (index, _enc, done) => {            return this._getEntry(filepaths[index], patterns[index], options)                .then((entry) => {                if (entry !== null && options.entryFilter(entry)) {                    stream.push(entry);                }                if (index === filepaths.length - 1) {                    stream.end();                }                done();            })                .catch(done);        };        for (let i = 0; i < filepaths.length; i++) {            stream.write(i);        }        return stream;    }    _getEntry(filepath, pattern, options) {        return this._getStat(filepath)            .then((stats) => this._makeEntry(stats, pattern))            .catch((error) => {            if (options.errorFilter(error)) {                return null;            }            throw error;        });    }    _getStat(filepath) {        return new Promise((resolve, reject) => {            this._stat(filepath, this._fsStatSettings, (error, stats) => {                return error === null ? resolve(stats) : reject(error);            });        });    }}exports.default = ReaderStream;
 |