.
This commit is contained in:
		
							
								
								
									
										81
									
								
								qwen/nodejs/node_modules/pg-protocol/dist/buffer-writer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								qwen/nodejs/node_modules/pg-protocol/dist/buffer-writer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
//binary data writer tuned for encoding binary specific to the postgres binary protocol
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
exports.Writer = void 0;
 | 
			
		||||
class Writer {
 | 
			
		||||
    constructor(size = 256) {
 | 
			
		||||
        this.size = size;
 | 
			
		||||
        this.offset = 5;
 | 
			
		||||
        this.headerPosition = 0;
 | 
			
		||||
        this.buffer = Buffer.allocUnsafe(size);
 | 
			
		||||
    }
 | 
			
		||||
    ensure(size) {
 | 
			
		||||
        const remaining = this.buffer.length - this.offset;
 | 
			
		||||
        if (remaining < size) {
 | 
			
		||||
            const oldBuffer = this.buffer;
 | 
			
		||||
            // exponential growth factor of around ~ 1.5
 | 
			
		||||
            // https://stackoverflow.com/questions/2269063/buffer-growth-strategy
 | 
			
		||||
            const newSize = oldBuffer.length + (oldBuffer.length >> 1) + size;
 | 
			
		||||
            this.buffer = Buffer.allocUnsafe(newSize);
 | 
			
		||||
            oldBuffer.copy(this.buffer);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    addInt32(num) {
 | 
			
		||||
        this.ensure(4);
 | 
			
		||||
        this.buffer[this.offset++] = (num >>> 24) & 0xff;
 | 
			
		||||
        this.buffer[this.offset++] = (num >>> 16) & 0xff;
 | 
			
		||||
        this.buffer[this.offset++] = (num >>> 8) & 0xff;
 | 
			
		||||
        this.buffer[this.offset++] = (num >>> 0) & 0xff;
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
    addInt16(num) {
 | 
			
		||||
        this.ensure(2);
 | 
			
		||||
        this.buffer[this.offset++] = (num >>> 8) & 0xff;
 | 
			
		||||
        this.buffer[this.offset++] = (num >>> 0) & 0xff;
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
    addCString(string) {
 | 
			
		||||
        if (!string) {
 | 
			
		||||
            this.ensure(1);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            const len = Buffer.byteLength(string);
 | 
			
		||||
            this.ensure(len + 1); // +1 for null terminator
 | 
			
		||||
            this.buffer.write(string, this.offset, 'utf-8');
 | 
			
		||||
            this.offset += len;
 | 
			
		||||
        }
 | 
			
		||||
        this.buffer[this.offset++] = 0; // null terminator
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
    addString(string = '') {
 | 
			
		||||
        const len = Buffer.byteLength(string);
 | 
			
		||||
        this.ensure(len);
 | 
			
		||||
        this.buffer.write(string, this.offset);
 | 
			
		||||
        this.offset += len;
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
    add(otherBuffer) {
 | 
			
		||||
        this.ensure(otherBuffer.length);
 | 
			
		||||
        otherBuffer.copy(this.buffer, this.offset);
 | 
			
		||||
        this.offset += otherBuffer.length;
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
    join(code) {
 | 
			
		||||
        if (code) {
 | 
			
		||||
            this.buffer[this.headerPosition] = code;
 | 
			
		||||
            //length is everything in this packet minus the code
 | 
			
		||||
            const length = this.offset - (this.headerPosition + 1);
 | 
			
		||||
            this.buffer.writeInt32BE(length, this.headerPosition + 1);
 | 
			
		||||
        }
 | 
			
		||||
        return this.buffer.slice(code ? 0 : 5, this.offset);
 | 
			
		||||
    }
 | 
			
		||||
    flush(code) {
 | 
			
		||||
        const result = this.join(code);
 | 
			
		||||
        this.offset = 5;
 | 
			
		||||
        this.headerPosition = 0;
 | 
			
		||||
        this.buffer = Buffer.allocUnsafe(this.size);
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.Writer = Writer;
 | 
			
		||||
//# sourceMappingURL=buffer-writer.js.map
 | 
			
		||||
		Reference in New Issue
	
	Block a user