update
This commit is contained in:
53
APP/nexus-remote/node_modules/peerjs-js-binarypack/lib/bufferbuilder.ts
generated
vendored
Normal file
53
APP/nexus-remote/node_modules/peerjs-js-binarypack/lib/bufferbuilder.ts
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
class BufferBuilder {
|
||||
private _pieces: number[];
|
||||
private readonly _parts: ArrayBufferView[];
|
||||
|
||||
constructor() {
|
||||
this._pieces = [];
|
||||
this._parts = [];
|
||||
}
|
||||
|
||||
append_buffer(data: ArrayBufferView) {
|
||||
this.flush();
|
||||
this._parts.push(data);
|
||||
}
|
||||
|
||||
append(data: number) {
|
||||
this._pieces.push(data);
|
||||
}
|
||||
|
||||
flush() {
|
||||
if (this._pieces.length > 0) {
|
||||
const buf = new Uint8Array(this._pieces);
|
||||
this._parts.push(buf);
|
||||
this._pieces = [];
|
||||
}
|
||||
}
|
||||
|
||||
private encoder = new TextEncoder();
|
||||
|
||||
public toArrayBuffer() {
|
||||
const buffer = [];
|
||||
for (const part of this._parts) {
|
||||
buffer.push(part);
|
||||
}
|
||||
return concatArrayBuffers(buffer).buffer;
|
||||
}
|
||||
}
|
||||
|
||||
export { BufferBuilder };
|
||||
|
||||
function concatArrayBuffers(bufs: ArrayBufferView[]) {
|
||||
let size = 0;
|
||||
for (const buf of bufs) {
|
||||
size += buf.byteLength;
|
||||
}
|
||||
const result = new Uint8Array(size);
|
||||
let offset = 0;
|
||||
for (const buf of bufs) {
|
||||
const view = new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
|
||||
result.set(view, offset);
|
||||
offset += buf.byteLength;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user