UNPKG

@doc.e.dub/csound-browser

Version:

[![npm (scoped with tag)](https://shields.shivering-isles.com/npm/v/@csound/browser/latest)](https://www.npmjs.com/package/@csound/browser) [![GitHub Workflow Status](https://shields.shivering-isles.com/github/workflow/status/csound/csound/csound_wasm)](h

21 lines (19 loc) 746 B
import { trimNull } from "@utils/trim-null"; import { sizeOfPrimitive } from "@utils/native-sizes"; import { uint2String } from "@utils/text-encoders"; export const structBufferToObject = (jsStruct, buffer) => { const [result] = jsStruct.reduce( ([parameters, offset], [parameterName, primitive, ...rest]) => { const currentSize = primitive === "char" ? sizeOfPrimitive[primitive] * rest[0] : sizeOfPrimitive[primitive]; const currentValue = primitive === "char" ? trimNull(uint2String(buffer.subarray(offset, currentSize))) || "" : buffer[offset]; parameters[parameterName] = currentValue; return [parameters, offset + currentSize]; }, [{}, 0], ); return result; };