From 2b320a70352becf6bca0451ee865c863eaaf639e Mon Sep 17 00:00:00 2001 From: krushna06 Date: Mon, 2 Mar 2026 01:02:27 +0530 Subject: [PATCH] feat: support for ByteProperty in MapProperty and implement writeByte function --- src/converter/properties/MapProperty.js | 12 +++++++++++- src/converter/value-writer.js | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/converter/properties/MapProperty.js b/src/converter/properties/MapProperty.js index 99aa269..4b406f2 100644 --- a/src/converter/properties/MapProperty.js +++ b/src/converter/properties/MapProperty.js @@ -1,5 +1,5 @@ import NoneProperty from "./NoneProperty.js"; -import {writeBytes, writeInt32, writeFloat32, writeString, writeUint32} from "../value-writer.js"; +import {writeBytes, writeInt32, writeFloat32, writeString, writeUint32, writeByte} from "../value-writer.js"; import {assignPrototype} from "../converter.js"; class MapProperty { @@ -33,6 +33,7 @@ class MapProperty { break; case "StrProperty": + case "NameProperty": currentKey = savReader.readString(); break; @@ -64,6 +65,10 @@ class MapProperty { currentValue = savReader.readBoolean(); break; + case "ByteProperty": + currentValue = savReader.readString(); + break; + case "StrProperty": currentValue = savReader.readString(); break; @@ -98,6 +103,7 @@ class MapProperty { break; case "StrProperty": + case "NameProperty": byteArrayContent = new Uint8Array([...byteArrayContent, ...writeString(currentKey)]); break; @@ -125,6 +131,10 @@ class MapProperty { byteArrayContent = new Uint8Array([...byteArrayContent, ...writeString(currentValue)]); break; + case "ByteProperty": + byteArrayContent = new Uint8Array([...byteArrayContent, ...writeString(currentValue)]); + break; + case "BoolProperty": if (currentValue === true) { byteArrayContent = new Uint8Array([...byteArrayContent, 0x01]); diff --git a/src/converter/value-writer.js b/src/converter/value-writer.js index e765e6a..cca005d 100644 --- a/src/converter/value-writer.js +++ b/src/converter/value-writer.js @@ -28,6 +28,10 @@ export function writeFloat32(value) { return array; } +export function writeByte(value) { + return new Uint8Array([value]); +} + export function writeFloat64(value) { const array = new Uint8Array(8); new DataView(array.buffer).setFloat64(0, value, true);