Constructs a new NodeIO service. Instances are reusable. By default, only NodeIO can only read/write paths on disk. To enable HTTP requests, provide a Fetch API implementation and enable setAllowHTTP.
Converts a GLB-formatted Uint8Array to a JSONDocument.
Sets the Logger used by this I/O instance. Defaults to Logger.DEFAULT_INSTANCE.
Converts glTF-formatted JSON and a resource map to a Document.
Converts a GLB-formatted Uint8Array to a Document.
Loads a URI and returns a JSONDocument struct, without parsing.
Reads a Document from the given URI.
Registers extensions, enabling I/O class to read and write glTF assets requiring them.
Registers dependencies used (e.g. by extensions) in the I/O process.
Sets the vertex layout method used by this I/O instance. Defaults to VertexLayout.INTERLEAVED.
Converts a Document to glTF-formatted JSON and a resource map.
Converts a Document to a GLB-formatted Uint8Array.
Writes a Document instance to a local path.
Made by Don McCurdy. Documentation built with greendoc and published under Creative Commons Attribution 3.0.
I/O service for Node.js.
The most common use of the I/O service is to read/write a Document with a given path. Methods are also available for converting in-memory representations of raw glTF files, both binary (Uint8Array) and JSON (JSONDocument).
Usage:
import { NodeIO } from '@gltf-transform/core'; const io = new NodeIO(); // Read. let document; document = await io.read('model.glb'); // → Document document = await io.readBinary(glb); // Uint8Array → Document // Write. await io.write('model.glb', document); // → void const glb = await io.writeBinary(document); // Document → Uint8Array
By default, NodeIO can only read/write paths on disk. To enable HTTP requests, provide a Fetch API implementation (such as
node-fetch
) and enable setAllowHTTP. HTTP requests may optionally be configured with RequestInit parameters.import fetch from 'node-fetch'; const io = new NodeIO(fetch, {headers: {...}}).setAllowHTTP(true); const document = await io.read('https://example.com/path/to/model.glb');