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 anencoding
option. As WebAssembly is a binary file format, if provided anencoding
option, 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 );
}
}