Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / get-stream / index.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/get-stream/index.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/get-stream/index.js
new file mode 100644 (file)
index 0000000..2dc5ee9
--- /dev/null
@@ -0,0 +1,51 @@
+'use strict';
+const bufferStream = require('./buffer-stream');
+
+function getStream(inputStream, opts) {
+       if (!inputStream) {
+               return Promise.reject(new Error('Expected a stream'));
+       }
+
+       opts = Object.assign({maxBuffer: Infinity}, opts);
+
+       const maxBuffer = opts.maxBuffer;
+       let stream;
+       let clean;
+
+       const p = new Promise((resolve, reject) => {
+               const error = err => {
+                       if (err) { // null check
+                               err.bufferedData = stream.getBufferedValue();
+                       }
+
+                       reject(err);
+               };
+
+               stream = bufferStream(opts);
+               inputStream.once('error', error);
+               inputStream.pipe(stream);
+
+               stream.on('data', () => {
+                       if (stream.getBufferedLength() > maxBuffer) {
+                               reject(new Error('maxBuffer exceeded'));
+                       }
+               });
+               stream.once('error', error);
+               stream.on('end', resolve);
+
+               clean = () => {
+                       // some streams doesn't implement the `stream.Readable` interface correctly
+                       if (inputStream.unpipe) {
+                               inputStream.unpipe(stream);
+                       }
+               };
+       });
+
+       p.then(clean, clean);
+
+       return p.then(() => stream.getBufferedValue());
+}
+
+module.exports = getStream;
+module.exports.buffer = (stream, opts) => getStream(stream, Object.assign({}, opts, {encoding: 'buffer'}));
+module.exports.array = (stream, opts) => getStream(stream, Object.assign({}, opts, {array: true}));