UNPKG

well-known-parser

Version:

A WKT/WKB/EWKT/EWKB/TWKB/GeoJSON parser and serializer

1 lines 5.44 kB
{"version":3,"file":"well-known-parser12.cjs","sources":["../src/binarywriter.ts"],"sourcesContent":["/**\n * A class for writing binary data with different endianness options\n */\nexport class BinaryWriter {\n buffer: Buffer;\n position: number;\n allowResize: boolean;\n\n constructor(size: number, allowResize: boolean = false) {\n this.buffer = Buffer.alloc(size);\n this.position = 0;\n this.allowResize = allowResize;\n }\n\n ensureSize(size: number): void {\n if (this.buffer.length < this.position + size) {\n if (this.allowResize) {\n const tempBuffer = Buffer.alloc(this.position + size);\n this.buffer.copy(tempBuffer, 0, 0, this.buffer.length);\n this.buffer = tempBuffer;\n } else {\n throw new RangeError('index out of range');\n }\n }\n }\n\n writeUInt8(value: number): void {\n this.ensureSize(1);\n this.buffer.writeUInt8(value, this.position);\n this.position += 1;\n }\n\n writeUInt16LE(value: number): void {\n this.ensureSize(2);\n this.buffer.writeUInt16LE(value, this.position);\n this.position += 2;\n }\n\n writeUInt16BE(value: number): void {\n this.ensureSize(2);\n this.buffer.writeUInt16BE(value, this.position);\n this.position += 2;\n }\n\n writeUInt32LE(value: number): void {\n this.ensureSize(4);\n this.buffer.writeUInt32LE(value, this.position);\n this.position += 4;\n }\n\n writeUInt32BE(value: number): void {\n this.ensureSize(4);\n this.buffer.writeUInt32BE(value, this.position);\n this.position += 4;\n }\n\n writeInt8(value: number): void {\n this.ensureSize(1);\n this.buffer.writeInt8(value, this.position);\n this.position += 1;\n }\n\n writeInt16LE(value: number): void {\n this.ensureSize(2);\n this.buffer.writeInt16LE(value, this.position);\n this.position += 2;\n }\n\n writeInt16BE(value: number): void {\n this.ensureSize(2);\n this.buffer.writeInt16BE(value, this.position);\n this.position += 2;\n }\n\n writeInt32LE(value: number): void {\n this.ensureSize(4);\n this.buffer.writeInt32LE(value, this.position);\n this.position += 4;\n }\n\n writeInt32BE(value: number): void {\n this.ensureSize(4);\n this.buffer.writeInt32BE(value, this.position);\n this.position += 4;\n }\n\n writeFloatLE(value: number): void {\n this.ensureSize(4);\n this.buffer.writeFloatLE(value, this.position);\n this.position += 4;\n }\n\n writeFloatBE(value: number): void {\n this.ensureSize(4);\n this.buffer.writeFloatBE(value, this.position);\n this.position += 4;\n }\n\n writeDoubleLE(value: number): void {\n this.ensureSize(8);\n this.buffer.writeDoubleLE(value, this.position);\n this.position += 8;\n }\n\n writeDoubleBE(value: number): void {\n this.ensureSize(8);\n this.buffer.writeDoubleBE(value, this.position);\n this.position += 8;\n }\n\n writeBuffer(buffer: Buffer): void {\n this.ensureSize(buffer.length);\n buffer.copy(this.buffer, this.position, 0, buffer.length);\n this.position += buffer.length;\n }\n\n writeVarInt(value: number): number {\n let length = 1;\n\n while ((value & 0xffffff80) !== 0) {\n this.writeUInt8((value & 0x7f) | 0x80);\n value >>>= 7;\n length++;\n }\n\n this.writeUInt8(value & 0x7f);\n\n return length;\n }\n}\n"],"names":["BinaryWriter","size","allowResize","tempBuffer","value","buffer","length"],"mappings":"gFAGO,MAAMA,CAAa,CAKxB,YAAYC,EAAcC,EAAuB,GAAO,CACtD,KAAK,OAAS,OAAO,MAAMD,CAAI,EAC/B,KAAK,SAAW,EAChB,KAAK,YAAcC,CACrB,CAEA,WAAWD,EAAoB,CAC7B,GAAI,KAAK,OAAO,OAAS,KAAK,SAAWA,EACvC,GAAI,KAAK,YAAa,CACpB,MAAME,EAAa,OAAO,MAAM,KAAK,SAAWF,CAAI,EACpD,KAAK,OAAO,KAAKE,EAAY,EAAG,EAAG,KAAK,OAAO,MAAM,EACrD,KAAK,OAASA,CAChB,KACE,OAAM,IAAI,WAAW,oBAAoB,CAG/C,CAEA,WAAWC,EAAqB,CAC9B,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,WAAWA,EAAO,KAAK,QAAQ,EAC3C,KAAK,UAAY,CACnB,CAEA,cAAcA,EAAqB,CACjC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,cAAcA,EAAO,KAAK,QAAQ,EAC9C,KAAK,UAAY,CACnB,CAEA,cAAcA,EAAqB,CACjC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,cAAcA,EAAO,KAAK,QAAQ,EAC9C,KAAK,UAAY,CACnB,CAEA,cAAcA,EAAqB,CACjC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,cAAcA,EAAO,KAAK,QAAQ,EAC9C,KAAK,UAAY,CACnB,CAEA,cAAcA,EAAqB,CACjC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,cAAcA,EAAO,KAAK,QAAQ,EAC9C,KAAK,UAAY,CACnB,CAEA,UAAUA,EAAqB,CAC7B,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,UAAUA,EAAO,KAAK,QAAQ,EAC1C,KAAK,UAAY,CACnB,CAEA,aAAaA,EAAqB,CAChC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,aAAaA,EAAO,KAAK,QAAQ,EAC7C,KAAK,UAAY,CACnB,CAEA,aAAaA,EAAqB,CAChC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,aAAaA,EAAO,KAAK,QAAQ,EAC7C,KAAK,UAAY,CACnB,CAEA,aAAaA,EAAqB,CAChC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,aAAaA,EAAO,KAAK,QAAQ,EAC7C,KAAK,UAAY,CACnB,CAEA,aAAaA,EAAqB,CAChC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,aAAaA,EAAO,KAAK,QAAQ,EAC7C,KAAK,UAAY,CACnB,CAEA,aAAaA,EAAqB,CAChC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,aAAaA,EAAO,KAAK,QAAQ,EAC7C,KAAK,UAAY,CACnB,CAEA,aAAaA,EAAqB,CAChC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,aAAaA,EAAO,KAAK,QAAQ,EAC7C,KAAK,UAAY,CACnB,CAEA,cAAcA,EAAqB,CACjC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,cAAcA,EAAO,KAAK,QAAQ,EAC9C,KAAK,UAAY,CACnB,CAEA,cAAcA,EAAqB,CACjC,KAAK,WAAW,CAAC,EACjB,KAAK,OAAO,cAAcA,EAAO,KAAK,QAAQ,EAC9C,KAAK,UAAY,CACnB,CAEA,YAAYC,EAAsB,CAChC,KAAK,WAAWA,EAAO,MAAM,EAC7BA,EAAO,KAAK,KAAK,OAAQ,KAAK,SAAU,EAAGA,EAAO,MAAM,EACxD,KAAK,UAAYA,EAAO,MAC1B,CAEA,YAAYD,EAAuB,CACjC,IAAIE,EAAS,EAEb,MAAQF,EAAQ,cAAgB,GAC9B,KAAK,WAAYA,EAAQ,IAAQ,GAAI,EACrCA,KAAW,EACXE,IAGF,YAAK,WAAWF,EAAQ,GAAI,EAErBE,CACT,CACF"}