UNPKG

unzipper-esm

Version:
55 lines (52 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = parseOne; var _stream = require("stream"); var _DuplexStream = _interopRequireDefault(require("./DuplexStream.js")); var _parse = _interopRequireDefault(require("./parse.js")); var _BufferStream = _interopRequireDefault(require("./BufferStream.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } // 'node:stream' function parseOne(match, opts) { var inStream = new _stream.PassThrough({ objectMode: true }); var outStream = new _stream.PassThrough(); var transform = new _stream.Transform({ objectMode: true, transform: function transform(entry, e, cb) { if (found || re && !re.exec(entry.path)) { entry.autodrain(); return cb(); } else { found = true; out.emit('entry', entry); entry.on('error', function (e) { outStream.emit('error', e); }); entry.pipe(outStream).on('error', function (err) { cb(err); }).on('finish', function (d) { cb(null, d); }); } } }); var re = match instanceof RegExp ? match : match && new RegExp(match); var found; inStream.pipe((0, _parse["default"])(opts)).on('error', function (err) { outStream.emit('error', err); }).pipe(transform).on('error', Object) // Silence error as its already addressed in transform .on('finish', function () { if (!found) outStream.emit('error', new Error('PATTERN_NOT_FOUND'));else outStream.end(); }); // Create a combined stream var out = new _DuplexStream["default"](inStream, outStream); out.buffer = function () { return (0, _BufferStream["default"])(outStream); }; return out; } //# sourceMappingURL=parseOne.js.map