summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/socks/build/common/receivebuffer.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/socks/build/common/receivebuffer.js')
-rw-r--r--deps/npm/node_modules/socks/build/common/receivebuffer.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/deps/npm/node_modules/socks/build/common/receivebuffer.js b/deps/npm/node_modules/socks/build/common/receivebuffer.js
new file mode 100644
index 0000000000..180fa749d0
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/receivebuffer.js
@@ -0,0 +1,42 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReceiveBuffer {
+ constructor(size = 4096) {
+ this._buffer = Buffer.allocUnsafe(size);
+ this._offset = 0;
+ this._originalSize = size;
+ }
+ get length() {
+ return this._offset;
+ }
+ append(data) {
+ if (!Buffer.isBuffer(data)) {
+ throw new Error('Attempted to append a non-buffer instance to ReceiveBuffer.');
+ }
+ if (this._offset + data.length >= this._buffer.length) {
+ const tmp = this._buffer;
+ this._buffer = Buffer.allocUnsafe(Math.max(this._buffer.length + this._originalSize, this._buffer.length + data.length));
+ tmp.copy(this._buffer);
+ }
+ data.copy(this._buffer, this._offset);
+ return (this._offset += data.length);
+ }
+ peek(length) {
+ if (length > this._offset) {
+ throw new Error('Attempted to read beyond the bounds of the managed internal data.');
+ }
+ return this._buffer.slice(0, length);
+ }
+ get(length) {
+ if (length > this._offset) {
+ throw new Error('Attempted to read beyond the bounds of the managed internal data.');
+ }
+ const value = Buffer.allocUnsafe(length);
+ this._buffer.slice(0, length).copy(value);
+ this._buffer.copyWithin(0, length, length + this._offset - length);
+ this._offset -= length;
+ return value;
+ }
+}
+exports.ReceiveBuffer = ReceiveBuffer;
+//# sourceMappingURL=receivebuffer.js.map \ No newline at end of file