rbx-dom
v0.3.0
Published
Node.js bindings for the rbx-dom Roblox DOM libraries
Readme
rbx-dom-napi
Expose rojo-rbx/rbx-dom through N-API.
Install
npm install rbx-domUsage
const { createDom, readXml, types } = require("rbx-dom");
const dom = createDom({
className: "DataModel",
children: [
{
className: "Part",
properties: {
Size: types.taggedVariant("Vector3", types.vector3(2, 3, 4)),
},
},
],
});
const part = dom.children(dom.rootRef)[0];
console.log(dom.getProperty(part, "Size")); // { Vector3: [2, 3, 4] }
const xml = dom.toXml();
const binary = dom.toBinary({ compression: "zstd" });[!WARNING] Referents,
UniqueIdvalues, 64-bit values, and 128-bit values are represented as strings so JavaScript cannot silently lose precision.
XML
We retain the mapping from generated internal referents:
const dom = readXml(xml);
const version = dom.xmlVersion(); // "4"
const internalReferent = dom.children(dom.rootRef)[0];
const authoredReferent = dom.sourceReferents()[internalReferent];