mirror of
https://github.com/1disk/edp445.git
synced 2024-08-14 22:47:02 +00:00
Changed alot of things.
This commit is contained in:
parent
a5a0523e5a
commit
3513d5390c
2016 changed files with 336930 additions and 9 deletions
103
node_modules/@skyra/gifenc/dist/lib/ByteBuffer.js
generated
vendored
Normal file
103
node_modules/@skyra/gifenc/dist/lib/ByteBuffer.js
generated
vendored
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ByteBuffer = void 0;
|
||||
class ByteBuffer {
|
||||
/**
|
||||
* Constructs the instance.
|
||||
* @param size The amount of bytes to reserve, defaults to 8KB.
|
||||
*/
|
||||
constructor(size = 8192) {
|
||||
Object.defineProperty(this, "written", {
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true,
|
||||
value: 0
|
||||
});
|
||||
Object.defineProperty(this, "data", {
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true,
|
||||
value: void 0
|
||||
});
|
||||
this.data = Buffer.allocUnsafe(size);
|
||||
}
|
||||
/**
|
||||
* Gets the written data.
|
||||
*/
|
||||
get length() {
|
||||
return this.written;
|
||||
}
|
||||
/**
|
||||
* Resets the data.
|
||||
* @note This does not de-allocate the data, instead, it sets the {@link ByteBuffer.written position} to zero.
|
||||
*/
|
||||
reset() {
|
||||
this.written = 0;
|
||||
}
|
||||
/**
|
||||
* Writes a single byte into the buffer.
|
||||
* @param byte The byte to write, between `0x00` and `0xFF`.
|
||||
*/
|
||||
writeByte(byte) {
|
||||
this.ensureByte();
|
||||
this.data[this.written++] = byte;
|
||||
}
|
||||
/**
|
||||
* Writes the `byte` value `times` times.
|
||||
* @param byte The byte to write `times` times.
|
||||
* @param times The amount of times to write the `byte`.
|
||||
*/
|
||||
writeTimes(byte, times) {
|
||||
this.ensureBytes(times);
|
||||
for (let i = 0; i < times; i++) {
|
||||
this.data[this.written++] = byte;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Writes `bytes` into the data.
|
||||
* @param bytes The bytes to write.
|
||||
*/
|
||||
writeBytes(bytes, start = 0, end = bytes.length) {
|
||||
this.ensureBytes(end - start);
|
||||
for (let i = start; i < end; i++) {
|
||||
this.data[this.written++] = bytes[i];
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Gets a sub-array of what was written so far.
|
||||
* @returns The written section of the data.
|
||||
*/
|
||||
toArray() {
|
||||
return this.data.subarray(0, this.written);
|
||||
}
|
||||
/**
|
||||
* Fills the data with the `byte` value given a range.
|
||||
* @param byte The value to write.
|
||||
* @param start The start index, defaults to `0`.
|
||||
* @param end The end index, defaults to {@link Uint8Array.length `this.data.length`}.
|
||||
*/
|
||||
fill(byte, start, end) {
|
||||
this.data.fill(byte, start, end);
|
||||
}
|
||||
ensureByte() {
|
||||
if (this.written + 1 >= this.data.length) {
|
||||
const size = this.data.length * 2;
|
||||
this.data = this.copyBytes(size);
|
||||
}
|
||||
}
|
||||
ensureBytes(n) {
|
||||
if (this.written + n >= this.data.length) {
|
||||
const size = Math.pow(2, Math.ceil(Math.log(this.written + n) / Math.log(2)));
|
||||
this.data = this.copyBytes(size);
|
||||
}
|
||||
}
|
||||
copyBytes(size) {
|
||||
const data = Buffer.allocUnsafe(size);
|
||||
for (let i = 0; i < this.written; ++i) {
|
||||
data[i] = this.data[i];
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
exports.ByteBuffer = ByteBuffer;
|
||||
//# sourceMappingURL=ByteBuffer.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue