NodeIO

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 network requests, provide a Fetch API implementation (global fetch() is stable in Node.js v21+, or node-fetch may be installed) and enable setAllowNetwork. Network requests may optionally be configured with RequestInit parameters.

const io = new NodeIO(fetch, {headers: {...}}).setAllowNetwork(true);

const document = await io.read('https://example.com/path/to/model.glb');

Hierarchy

Constructor

  • constructor(_fetch?: unknown,_fetchConfig?: RequestInit): NodeIO
  • 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 setAllowNetwork.

Properties

Methods

  • setAllowNetwork(allow: boolean): NodeIO
  • binaryToJSON(glb: Uint8Array): Promise<JSONDocument>
  • init(): Promise<void>
  • read(uri: string): Promise<Document>
  • readAsJSON(uri: string): Promise<JSONDocument>
  • readBinary(glb: Uint8Array): Promise<Document>
  • registerDependencies(dependencies: { [key: string]: unknown }): PlatformIO
  • registerExtensions(extensions: (typeof Extension)[]): PlatformIO
  • Sets whether missing external resources should throw errors (strict mode) or be ignored with warnings. Missing images can be ignored, but missing buffers will currently always result in an error. When strict mode is disabled and missing resources are encountered, the resulting Document will be created in an invalid state. Manual fixes to the Document may be necessary, resolving null images in Textures or removing the affected Textures, before the Document can be written to output or used in transforms.

    Defaults to true (strict mode).

  • write(uri: string,doc: Document): Promise<void>
  • writeBinary(doc: Document): Promise<Uint8Array<ArrayBuffer>>
  • writeJSON(doc: Document,_options?: PublicWriterOptions): Promise<JSONDocument>
Function symbol, where the argument and output are a box labeled 'glTF'.

Made by Don McCurdy. Documentation built with greendoc and published under Creative Commons Attribution 3.0.