optional-require
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.3 • Public • Published

    NPM version Build Status Dependency Status devDependency Status

    Optional Require

    NodeJS Require that let you handle module not found error without try/catch. Allows you to gracefully require a module only if it exists and contains no error.

    Usage

    const optionalRequire = require("optional-require")(require);
    
    const foo = optionalRequire("foo") || {};
    const bar = optionalRequire("bar", true); // true enables console.log a message when not found
    const xyz = optionalRequire("xyz", "test"); // "test" enables console.log a message with "test" added.
    const fbPath = optionalRequire.resolve("foo", "foo doesn't exist");
    const rel = optionalRequire("../foo/bar"); // relative module path works

    Install

    $ npm i optional-require --save

    API

    optionalRequire(require)

    The single function this module exports. Call it with require to get a custom function for you to do optional require from your file's require context. See Usage above.

    customOptionalRequire(path, [message|options])

    The function optionalRequire returns for you to do optional require from your file's require context.

    Params
    • path - name/path to the module your want to optionally require
    • message - optional flag/message to enable console.log a message when module is not found
    • options - an optional object with the following fields
      • message - see above
      • fail - callback for when an error that's not MODULE_NOT_FOUND for path occurred
      • notFound - callback for when path was not found
        • The value from this is returned
      • default - default value to returned when not found - not allowed with notFound together
    Returns
    • module required or one of the following if not found
      • undefined or
      • return value from options.notFound if it's specified
      • options.default if it's specified
    Throws
    • rethrows any error that's not MODULE_NOT_FOUND for the module path

    customOptionalRequire.resolve(path, [message])

    Same as customOptionalRequire but acts like require.resolve

    optionalRequire.log(message, path)

    The function that will be called to log the message when optional module is not found. You can override this with your own function.

    optionalRequire.try(require, path, [message|options])

    Same as customOptionalRequire but you have to pass in require from your file's context.

    optionalRequire.resolve(require, path, [message|options])

    Same as customOptionalRequire.resolve but you have to pass in require from your file's context.

    LICENSE

    Apache-2.0 © Joel Chen

    Install

    npm i [email protected]

    Version

    1.0.3

    License

    Apache-2.0

    Unpacked Size

    7.4 kB

    Total Files

    3

    Last publish

    Collaborators

    • jchip