gltf-validator

    2.0.0-dev.3.5 • 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.

    Keywords

    Install

    npm i gltf-validator

    DownloadsWeekly Downloads

    2,528

    Version

    2.0.0-dev.3.5

    License

    Apache-2.0

    Unpacked Size

    389 kB

    Total Files

    9

    Last publish

    Collaborators

    • emackey
    • khronos