This is an npm package for the official glTF Validator compiled from Dart to JS.
npm install --save gltf-validator
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));
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));
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,
format: 'gltf', // skip auto-detection and parse the input as glTF JSON
maxIssues: 10, // limit max number of output issues to 10
ignoredIssues: ['UNSUPPORTED_EXTENSION'], // mute UNSUPPORTED_EXTENSION issue
onlyIssues: ['ACCESSOR_INVALID_FLOAT'], // only consider ACCESSOR_INVALID_FLOAT an issue. Cannot be used along with ignoredIssues.
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);
});
Returns a version string.
Returns string
Returns an array of supported extensions names.
Validates an asset from bytes.
-
data
Uint8Array Byte array containing glTF or GLB data. -
options
ValidationOptions Object with validation options.
Returns Promise Promise with validation result in object form.
Validates an asset from JSON string.
-
json
string String containing glTF JSON. -
options
ValidationOptions Object with validation options.
Returns Promise Promise with validation result in object form.
Type: Object
-
uri
string Absolute or relative asset URI that will be copied to validation report. -
format
string Set toglb
orgltf
to skip auto-detection of the asset format based on the first byte; any other value will be ignored. This option has no effect onvalidateString
. -
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. -
onlyIssues
Array<string> Array of only issues to consider. Cannot be used along with ignoredIssues. -
severityOverrides
Object Object with overridden severities for issue codes.
Type: Function
-
uri
string Relative URI of the external resource.
Returns Promise Promise with Uint8Array data.