time-to-botec/squiggle/node_modules/@stdlib/utils/try-require
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00
..
docs feat: add the node modules 2022-12-03 12:44:49 +00:00
lib feat: add the node modules 2022-12-03 12:44:49 +00:00
package.json feat: add the node modules 2022-12-03 12:44:49 +00:00
README.md feat: add the node modules 2022-12-03 12:44:49 +00:00

tryRequire

Wrap require in a try/catch block.

Usage

var tryRequire = require( '@stdlib/utils/try-require' );

tryRequire( id )

Wraps require in a try/catch block. If able to resolve a module id, the function returns the value bound to module.exports in the resolved module. Otherwise, the function returns an Error.

var x = tryRequire( 'beep' );

if ( x instanceof Error ) {
    console.log( x.message );
}

Notes

  • Use caution when attempting to resolve a relative path or a local module. This function attempts to resolve a module from its current path. Thus, the function is unable to resolve anything which is not along its search path. For local requires, use an absolute file path.

    var resolve = require( 'path' ).resolve;
    
    var out = tryRequire( resolve( '/foo/bar/baz', '..', 'lib', 'beep.js' ) );
    
    if ( out instanceof Error ) {
        console.error( out.message );
    }
    

Examples

var tryRequire = require( '@stdlib/utils/try-require' );

var out;

out = tryRequire( '_abcdefghijklmnopqrstuvwxyz123456789_' );
if ( out instanceof Error ) {
    console.error( out.message );
} else {
    throw new Error( 'expected an error' );
}

out = tryRequire( '@stdlib/utils/try-require' );
if ( out !== tryRequire ) {
    throw new Error( 'expected export' );
}