Files
lcbp3.np-dms.work/backend/node_modules/mariadb/lib/io/packet-node-encoded.js
2025-09-21 20:29:15 +07:00

41 lines
1.0 KiB
JavaScript
Executable File

// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (c) 2015-2024 MariaDB Corporation Ab
'use strict';
const Packet = require('./packet');
class PacketNodeEncoded extends Packet {
constructor(encoding) {
super();
// using undefined for utf8 permit to avoid node.js searching
// for charset, using directly utf8 default one.
this.encoding = encoding === 'utf8' ? undefined : encoding;
}
readStringLengthEncoded() {
const len = this.readUnsignedLength();
if (len === null) return null;
this.pos += len;
return this.buf.toString(this.encoding, this.pos - len, this.pos);
}
static readString(encoding, buf, beg, len) {
return buf.toString(encoding, beg, beg + len);
}
subPacketLengthEncoded(len) {
this.skip(len);
return new PacketNodeEncoded(this.encoding).update(this.buf, this.pos - len, this.pos);
}
readStringRemaining() {
const str = this.buf.toString(this.encoding, this.pos, this.end);
this.pos = this.end;
return str;
}
}
module.exports = PacketNodeEncoded;