.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / get-stream / buffer-stream.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/get-stream/buffer-stream.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/get-stream/buffer-stream.js
new file mode 100644 (file)
index 0000000..ae45d3d
--- /dev/null
@@ -0,0 +1,51 @@
+'use strict';
+const PassThrough = require('stream').PassThrough;
+
+module.exports = opts => {
+       opts = Object.assign({}, opts);
+
+       const array = opts.array;
+       let encoding = opts.encoding;
+       const buffer = encoding === 'buffer';
+       let objectMode = false;
+
+       if (array) {
+               objectMode = !(encoding || buffer);
+       } else {
+               encoding = encoding || 'utf8';
+       }
+
+       if (buffer) {
+               encoding = null;
+       }
+
+       let len = 0;
+       const ret = [];
+       const stream = new PassThrough({objectMode});
+
+       if (encoding) {
+               stream.setEncoding(encoding);
+       }
+
+       stream.on('data', chunk => {
+               ret.push(chunk);
+
+               if (objectMode) {
+                       len = ret.length;
+               } else {
+                       len += chunk.length;
+               }
+       });
+
+       stream.getBufferedValue = () => {
+               if (array) {
+                       return ret;
+               }
+
+               return buffer ? Buffer.concat(ret, len) : ret.join('');
+       };
+
+       stream.getBufferedLength = () => len;
+
+       return stream;
+};