(field: { type: string; val: any })
| 2228 | }; |
| 2229 | // Helper function to serialize a single field to buffer without writing |
| 2230 | const 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 |
| 2274 | const serializeSchemaFieldToBuffer = (schemaField: SchemaField): Buffer => { |
| 2275 | const fieldBuffers: Buffer[] = []; |
no outgoing calls
no test coverage detected