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.
validateBytes
Validates an asset from bytes.
Parameters
-
data
Uint8Array Byte array containing glTF or GLB data. -
options
ValidationOptions Object with validation options.
Returns Promise Promise with validation result in object form.
validateString
Validates an asset from JSON string.
Parameters
-
json
string String containing glTF JSON. -
options
ValidationOptions Object with validation options.
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 tofalse
to omit timestamp from the validation report. Default istrue
. -
maxIssues
number Max number of reported issues. Use0
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.