MCPcopy Create free account
hub / github.com/Shazbot/WH3-Mod-Manager / serializeFieldToBuffer

Function serializeFieldToBuffer

src/packFileSerializer.ts:2230–2272  ·  view source on GitHub ↗
(field: { type: string; val: any })

Source from the content-addressed store, hash-verified

2228};
2229// Helper function to serialize a single field to buffer without writing
2230const serializeFieldToBuffer = (field: { type: string; val: any }): Buffer => {
2231 switch (field.type) {
2232 case "UInt8":
2233 case "Int8": {
2234 reusableBuffers.i8.writeUInt8(field.val as number, 0);
2235 return Buffer.from(reusableBuffers.i8);
2236 }
2237 case "F32": {
2238 reusableBuffers.f32.writeFloatLE(field.val as number, 0);
2239 return Buffer.from(reusableBuffers.f32);
2240 }
2241 case "I32": {
2242 reusableBuffers.i32.writeInt32LE(field.val as number, 0);
2243 return Buffer.from(reusableBuffers.i32);
2244 }
2245 case "I16": {
2246 reusableBuffers.i16.writeInt16LE(field.val as number, 0);
2247 return Buffer.from(reusableBuffers.i16);
2248 }
2249 case "Int16": {
2250 reusableBuffers.i16.writeUInt16LE(field.val as number, 0);
2251 return Buffer.from(reusableBuffers.i16);
2252 }
2253 case "I64": {
2254 reusableBuffers.i64.writeBigInt64LE(BigInt(field.val as number), 0);
2255 return Buffer.from(reusableBuffers.i64);
2256 }
2257 case "F64": {
2258 reusableBuffers.f64.writeDoubleLE(field.val as number, 0);
2259 return Buffer.from(reusableBuffers.f64);
2260 }
2261 case "String": {
2262 const stringVal = field.val as string;
2263 // console.log(` serializeFieldToBuffer String: val="${stringVal}" length=${stringVal.length}`);
2264 return Buffer.from(stringVal, "utf8");
2265 }
2266 case "Buffer": {
2267 return field.val as Buffer;
2268 }
2269 default:
2270 throw new Error("NO WAY TO RESOLVE " + field.type);
2271 }
2272};
2273// Serialize an entire schema field to buffer
2274const serializeSchemaFieldToBuffer = (schemaField: SchemaField): Buffer => {
2275 const fieldBuffers: Buffer[] = [];

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected