gltf-validator

2.0.0-dev.3.9 • Public • Published

gltf-validator

This is an npm package for the official glTF Validator compiled from Dart to JS.

Installation

npm install --save gltf-validator

Examples

Basic usage (Node.js)

const fs = require('fs');
const validator = require('gltf-validator');

const asset = fs.readFileSync('./Box.gltf');

validator.validateBytes(new Uint8Array(asset))
    .then((report) => console.info('Validation succeeded: ', report))
    .catch((error) => console.error('Validation failed: ', error));

Basic usage (Browser)

const validator = require('gltf-validator');

fetch('Box.gltf')
    .then((response) => response.arrayBuffer())
    .then((asset) => validator.validateBytes(new Uint8Array(asset)))
    .then((report) => console.info('Validation succeeded: ', report))
    .catch((error) => console.error('Validation failed: ', error));

Full usage

const fs = require("fs");
const path = require("path");
const validator = require('gltf-validator');

const filename = 'Box.gltf';
const fullpath = __dirname + '/' + filename;
const asset = fs.readFileSync(fullpath);

validator.validateBytes(new Uint8Array(asset), {
    uri: filename,
    maxIssues: 10, // limit max number of output issues to 10
    ignoredIssues: ['UNSUPPORTED_EXTENSION'], // mute UNSUPPORTED_EXTENSION issue
    severityOverrides: { 'ACCESSOR_INDEX_TRIANGLE_DEGENERATE': 0 }, // treat degenerate triangles as errors
    externalResourceFunction: (uri) =>
        new Promise((resolve, reject) => {
            uri = path.resolve(path.dirname(fullpath), decodeURIComponent(uri));
            console.info("Loading external file: " + uri);
            fs.readFile(uri, (err, data) => {
                if (err) {
                    console.error(err.toString());
                    reject(err.toString());
                    return;
                }
                resolve(data);
            });
        })
}).then((result) => {
    // [result] will contain validation report in object form.
    // You can convert it to JSON to see its internal structure. 
    console.log(JSON.stringify(result, null, '  '));
}, (result) => {
    // Promise rejection means that arguments were invalid or validator was unable 
    // to detect file format (glTF or GLB). 
    // [result] will contain exception string.
    console.error(result);
});

API

Table of Contents

version

Returns a version string.

Returns string

supportedExtensions

Returns an array of supported extensions names.

Returns Array<string>

validateBytes

Validates an asset from bytes.

Parameters

Returns Promise Promise with validation result in object form.

validateString

Validates an asset from JSON string.

Parameters

Returns Promise Promise with validation result in object form.

ValidationOptions

Type: Object

Properties

  • uri string Absolute or relative asset URI that will be copied to validation report.
  • externalResourceFunction ExternalResourceFunction Function for loading external resources. If omitted, external resources are not validated.
  • writeTimestamp boolean Set to false to omit timestamp from the validation report. Default is true.
  • maxIssues number Max number of reported issues. Use 0 for unlimited output.
  • ignoredIssues Array<string> Array of ignored issue codes.
  • severityOverrides Object Object with overridden severities for issue codes.

ExternalResourceFunction

Type: Function

Parameters

  • uri string Relative URI of the external resource.

Returns Promise Promise with Uint8Array data.

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i gltf-validator

      Weekly Downloads

      4,902

      Version

      2.0.0-dev.3.9

      License

      Apache-2.0

      Unpacked Size

      376 kB

      Total Files

      9

      Last publish

      Collaborators

      • emackey
      • khronos