netconf-client
Version:
29 lines • 899 B
JavaScript
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
const NETCONF_MAX_BUFFER_SIZE = 50 * 1024 * 1024;
export const NETCONF_DELIM = ']]>]]>';
export class NetconfBuffer {
buffer = Buffer.from('');
append(chunk) {
if (this.buffer.length + chunk.length > NETCONF_MAX_BUFFER_SIZE) {
return false;
}
this.buffer = Buffer.concat([this.buffer, chunk]);
return true;
}
extract() {
const pos = this.buffer.indexOf(NETCONF_DELIM);
if (pos === -1) {
return undefined;
}
const message = this.buffer.subarray(0, pos).toString();
this.buffer = this.buffer.subarray(pos + NETCONF_DELIM.length);
return message;
}
clear() {
this.buffer = Buffer.from('');
}
toString() {
return this.buffer.toString();
}
}
//# sourceMappingURL=netconf-buffer.js.map