-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
19 changed files
with
664 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,3 @@ | ||
# Custom | ||
lib/ | ||
|
||
# Logs | ||
logs | ||
*.log | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
/// <reference types="node" /> | ||
import { IReader } from "./readers/IReader"; | ||
import { IWriter } from "./writers/IWriter"; | ||
export declare enum Endian { | ||
LE = 0, | ||
BE = 1 | ||
} | ||
export declare function createReader(endianness: Endian, buffer: Buffer): IReader; | ||
export declare function createWriter(endianness: Endian, size?: number): IWriter; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createWriter = exports.createReader = exports.Endian = void 0; | ||
const ReaderBE_1 = require("./readers/ReaderBE"); | ||
const ReaderLE_1 = require("./readers/ReaderLE"); | ||
const WriterBE_1 = require("./writers/WriterBE"); | ||
const WriterLE_1 = require("./writers/WriterLE"); | ||
var Endian; | ||
(function (Endian) { | ||
Endian[Endian["LE"] = 0] = "LE"; | ||
Endian[Endian["BE"] = 1] = "BE"; | ||
})(Endian = exports.Endian || (exports.Endian = {})); | ||
function createReader(endianness, buffer) { | ||
if (endianness === Endian.LE) { | ||
return new ReaderLE_1.ReaderLE(buffer); | ||
} | ||
else { | ||
return new ReaderBE_1.ReaderBE(buffer); | ||
} | ||
} | ||
exports.createReader = createReader; | ||
function createWriter(endianness, size) { | ||
if (endianness === Endian.LE) { | ||
return new WriterLE_1.WriterLE(size); | ||
} | ||
else { | ||
return new WriterBE_1.WriterBE(size); | ||
} | ||
} | ||
exports.createWriter = createWriter; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
/// <reference types="node" /> | ||
export interface IReader { | ||
readBuffer(bytes: number): Buffer; | ||
readUint8Array(bytes: number): Uint8Array; | ||
readByte(): number; | ||
readUByte(): number; | ||
readBool(): boolean; | ||
readShort(): number; | ||
readUShort(): number; | ||
readInt(): number; | ||
readUInt(): number; | ||
readLong(): bigint; | ||
readULong(): bigint; | ||
readFloat(): number; | ||
readDouble(): number; | ||
readShortString(): string; | ||
readString(): string; | ||
readString16(): string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { IReader } from "./IReader"; | ||
import { ReaderBase } from "./ReaderBase"; | ||
export declare class ReaderBE extends ReaderBase implements IReader { | ||
readShort(): number; | ||
readUShort(): number; | ||
readInt(): number; | ||
readUInt(): number; | ||
readLong(): bigint; | ||
readULong(): bigint; | ||
readFloat(): number; | ||
readDouble(): number; | ||
readShortString(): string; | ||
readString(): string; | ||
readString16(): string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ReaderBE = void 0; | ||
const ReaderBase_1 = require("./ReaderBase"); | ||
class ReaderBE extends ReaderBase_1.ReaderBase { | ||
readShort() { | ||
const value = this.buffer.readInt16BE(this.offset); | ||
this.offset += 2; | ||
return value; | ||
} | ||
readUShort() { | ||
const value = this.buffer.readUInt16BE(this.offset); | ||
this.offset += 2; | ||
return value; | ||
} | ||
readInt() { | ||
const value = this.buffer.readInt32BE(this.offset); | ||
this.offset += 4; | ||
return value; | ||
} | ||
readUInt() { | ||
const value = this.buffer.readUInt32BE(this.offset); | ||
this.offset += 4; | ||
return value; | ||
} | ||
readLong() { | ||
const value = this.buffer.readBigInt64BE(this.offset); | ||
this.offset += 8; | ||
return value; | ||
} | ||
readULong() { | ||
const value = this.buffer.readBigUint64BE(this.offset); | ||
this.offset += 8; | ||
return value; | ||
} | ||
readFloat() { | ||
const value = this.buffer.readFloatBE(this.offset); | ||
this.offset += 4; | ||
return value; | ||
} | ||
readDouble() { | ||
const value = this.buffer.readDoubleBE(this.offset); | ||
this.offset += 8; | ||
return value; | ||
} | ||
readShortString() { | ||
const length = this.readUByte(); | ||
let text = ""; | ||
for (let i = 0; i < length; i++) { | ||
text += String.fromCharCode(this.readUByte()); | ||
} | ||
return text; | ||
} | ||
readString() { | ||
const length = this.readUShort(); | ||
let text = ""; | ||
for (let i = 0; i < length; i++) { | ||
text += String.fromCharCode(this.readUByte()); | ||
} | ||
return text; | ||
} | ||
readString16() { | ||
const length = this.readUShort(); | ||
let text = ""; | ||
for (let i = 0; i < length; i++) { | ||
text += String.fromCharCode(this.readUShort()); | ||
} | ||
return text; | ||
} | ||
} | ||
exports.ReaderBE = ReaderBE; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
/// <reference types="node" /> | ||
export declare class ReaderBase { | ||
buffer: Buffer; | ||
offset: number; | ||
constructor(buffer: Buffer); | ||
readBuffer(bytes: number): Buffer; | ||
readUint8Array(bytes: number): Uint8Array; | ||
readByte(): number; | ||
readUByte(): number; | ||
readBool(): boolean; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ReaderBase = void 0; | ||
class ReaderBase { | ||
constructor(buffer) { | ||
this.buffer = buffer; | ||
this.offset = 0; | ||
} | ||
readBuffer(bytes) { | ||
const value = this.buffer.subarray(this.offset, this.offset + bytes); | ||
this.offset += bytes; | ||
return value; | ||
} | ||
// NOTE: This has to be a copy as the subarray is only cropped & offset | ||
// Realistically this is what we want anyway. | ||
readUint8Array(bytes) { | ||
const croppedBuffer = this.readBuffer(bytes); | ||
const newArray = new Uint8Array(croppedBuffer.length); | ||
for (let i = 0; i < croppedBuffer.length; i++) { | ||
newArray[i] = croppedBuffer[i]; | ||
} | ||
return newArray; | ||
} | ||
readByte() { | ||
const value = this.buffer.readInt8(this.offset); | ||
this.offset++; | ||
return value; | ||
} | ||
readUByte() { | ||
const value = this.buffer.readUInt8(this.offset); | ||
this.offset++; | ||
return value; | ||
} | ||
readBool() { | ||
return Boolean(this.readUByte()); | ||
} | ||
} | ||
exports.ReaderBase = ReaderBase; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { IReader } from "./IReader"; | ||
import { ReaderBase } from "./ReaderBase"; | ||
export declare class ReaderLE extends ReaderBase implements IReader { | ||
readShort(): number; | ||
readUShort(): number; | ||
readInt(): number; | ||
readUInt(): number; | ||
readLong(): bigint; | ||
readULong(): bigint; | ||
readFloat(): number; | ||
readDouble(): number; | ||
readShortString(): string; | ||
readString(): string; | ||
readString16(): string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ReaderLE = void 0; | ||
const ReaderBase_1 = require("./ReaderBase"); | ||
class ReaderLE extends ReaderBase_1.ReaderBase { | ||
readShort() { | ||
const value = this.buffer.readInt16LE(this.offset); | ||
this.offset += 2; | ||
return value; | ||
} | ||
readUShort() { | ||
const value = this.buffer.readUInt16LE(this.offset); | ||
this.offset += 2; | ||
return value; | ||
} | ||
readInt() { | ||
const value = this.buffer.readInt32LE(this.offset); | ||
this.offset += 4; | ||
return value; | ||
} | ||
readUInt() { | ||
const value = this.buffer.readUInt32LE(this.offset); | ||
this.offset += 4; | ||
return value; | ||
} | ||
readLong() { | ||
const value = this.buffer.readBigInt64LE(this.offset); | ||
this.offset += 8; | ||
return value; | ||
} | ||
readULong() { | ||
const value = this.buffer.readBigUint64LE(this.offset); | ||
this.offset += 8; | ||
return value; | ||
} | ||
readFloat() { | ||
const value = this.buffer.readFloatLE(this.offset); | ||
this.offset += 4; | ||
return value; | ||
} | ||
readDouble() { | ||
const value = this.buffer.readDoubleLE(this.offset); | ||
this.offset += 8; | ||
return value; | ||
} | ||
readShortString() { | ||
const length = this.readUByte(); | ||
let text = ""; | ||
for (let i = 0; i < length; i++) { | ||
text += String.fromCharCode(this.readUByte()); | ||
} | ||
return text; | ||
} | ||
readString() { | ||
const length = this.readUShort(); | ||
let text = ""; | ||
for (let i = 0; i < length; i++) { | ||
text += String.fromCharCode(this.readUByte()); | ||
} | ||
return text; | ||
} | ||
readString16() { | ||
const length = this.readUShort(); | ||
let text = ""; | ||
for (let i = 0; i < length; i++) { | ||
text += String.fromCharCode(this.readUShort()); | ||
} | ||
return text; | ||
} | ||
} | ||
exports.ReaderLE = ReaderLE; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
/// <reference types="node" /> | ||
export interface IWriter { | ||
toBuffer(): Buffer; | ||
toString(): string; | ||
writeBuffer(buffer: Buffer): IWriter; | ||
writeUint8Array(array: Uint8Array): IWriter; | ||
writeByte(value: number): IWriter; | ||
writeUByte(value: number): IWriter; | ||
writeBool(value: boolean | number): IWriter; | ||
writeShort(value: number): IWriter; | ||
writeUShort(value: number): IWriter; | ||
writeInt(value: number): IWriter; | ||
writeUInt(value: number): IWriter; | ||
writeLong(value: number | bigint): IWriter; | ||
writeULong(value: number): IWriter; | ||
writeFloat(value: number): IWriter; | ||
writeDouble(value: number): IWriter; | ||
writeShortString(text: string): IWriter; | ||
writeString(text: string): IWriter; | ||
writeString16(text: string): IWriter; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { IWriter } from "./IWriter"; | ||
import { WriterBase } from "./WriterBase"; | ||
export declare class WriterBE extends WriterBase implements IWriter { | ||
writeShort(value: number): this; | ||
writeUShort(value: number): this; | ||
writeInt(value: number): this; | ||
writeUInt(value: number): this; | ||
writeLong(value: number | bigint): this; | ||
writeULong(value: number | bigint): this; | ||
writeFloat(value: number): this; | ||
writeDouble(value: number): this; | ||
writeShortString(text: string): this; | ||
writeString(text: string): this; | ||
writeString16(text: string): this; | ||
} |
Oops, something went wrong.