To describe the structure you should use this syntax:
const { struct } = require('struct-plus');
const description = struct([type0, name0, arraySize0(optional)], [type1, name1, arraySize1(optional)],...);
Where type may be:
1.Scalar(int,float,double,char(n))
2.Another structure description
You can use built-in scalar types:
const { struct } = require('struct-plus');
const types = require('struct-plus/types');
const substruct = struct([types.int8, 'first'], [types.uint16, 'second'], [types.int48, 'array', 10]);
const description = struct([types.char(16), 'name'], [substruct, 'info']);
Then you can use this description to allocate Buffer:
const { Struct } = require('struct-plus');
const instance = new Struct(description);
You can get Buffer of this instance using instance.buffer. To get access in JavaScript-readable format you should use instance.data:
instance.data.name = 'Alice';
instance.data.info.first = 42;
instance.data.info.array[7] = 0xABCDEF;
You can also use objects to set values(it behaves as Object.assign):
instance.data.info = { first: 77, second: 34 };
In this example first will be set to 77, second to 34, array will not be changed.