import { __exports as stream } from '../../../../../../../../_virtual/stream4.mjs';
import require$$0 from 'node:stream';
import '../readers/async.mjs';
import { __exports as async } from '../../../../../../../../_virtual/async5.mjs';

Object.defineProperty(stream, "__esModule", {
  value: true
});
const stream_1 = require$$0;
const async_1 = async;
class StreamProvider {
  constructor(_root, _settings) {
    this._root = _root;
    this._settings = _settings;
    this._reader = new async_1.default(this._root, this._settings);
    this._stream = new stream_1.Readable({
      objectMode: true,
      read: () => {},
      destroy: () => {
        if (!this._reader.isDestroyed) {
          this._reader.destroy();
        }
      }
    });
  }
  read() {
    this._reader.onError(error => {
      this._stream.emit('error', error);
    });
    this._reader.onEntry(entry => {
      this._stream.push(entry);
    });
    this._reader.onEnd(() => {
      this._stream.push(null);
    });
    this._reader.read();
    return this._stream;
  }
}
stream.default = StreamProvider;
