|  | ||
|---|---|---|
| .. | ||
| docs | ||
| lib | ||
| package.json | ||
| README.md | ||
Read WebAssembly
Read a file as WebAssembly.
Usage
var readWASM = require( '@stdlib/fs/read-wasm' );
readWASM( file[, options], clbk )
Asynchronously reads a file as WebAssembly.
var join = require( 'path' ).join;
var fpath = join( __dirname, 'examples', 'fixtures', 'file.wasm' );
readWASM( fpath, onRead );
function onRead( error, buf ) {
    if ( error ) {
        throw error;
    }
    console.log( buf );
}
The function accepts the following options:
- flag: file status flag.
readWASM.sync( file[, options] )
Synchronously reads a file as WebAssembly.
var join = require( 'path' ).join;
var instanceOf = require( '@stdlib/assert/instance-of' );
var fpath = join( __dirname, 'examples', 'fixtures', 'file.wasm' );
var out = readWASM.sync( fpath );
if ( instanceOf( out, Error ) ) {
    throw out;
}
console.log( out );
The function accepts the same options as readWASM() above.
Notes
- In contrast to readFile(), neither function accepts anencodingoption. As WebAssembly is a binary file format, if provided anencodingoption, the function overrides the option, setting the option value tonull.
- Both functions return WebAssembly file content as a Uint8Array.
Examples
var join = require( 'path' ).join;
var hasWebAssemblySupport = require( '@stdlib/assert/has-wasm-support' );
var readWASM = require( '@stdlib/fs/read-wasm' );
var fpath = join( __dirname, 'examples', 'fixtures', 'file.wasm' );
readWASM( fpath, onRead );
function onRead( error, wasm ) {
    var bool;
    if ( error ) {
        throw error;
    }
    bool = hasWebAssemblySupport();
    // If WebAssembly is supported, create a WebAssembly module instance...
    if ( bool ) {
        wasm = new WebAssembly.Module( wasm );
        wasm = new WebAssembly.Instance( wasm, {} );
        console.log( wasm.exports.stdlib_hypot( 5.0, 12.0 ) );
    } else {
        console.log( wasm );
    }
}