@unrealworks/rbx-dom-linux-arm64-gnu

Node.js bindings for the rbx-dom Roblox DOM libraries


Keywords
napi, roblox, rojo
License
MIT
Install
npm install @unrealworks/rbx-dom-linux-arm64-gnu@0.3.0

Documentation

rbx-dom-napi

Expose rojo-rbx/rbx-dom through N-API.

Install

npm install rbx-dom

Usage

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, UniqueId values, 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];