|
|
3 years ago | |
|---|---|---|
| .. | ||
| README.md | 3 years ago | |
| index.js | 3 years ago | |
| package.json | 3 years ago | |
README.md
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 requiremessage- optional flag/message to enableconsole.loga message when module is not foundoptions- an optional object with the following fieldsmessage- see abovefail- callback for when an error that's notMODULE_NOT_FOUNDforpathoccurrednotFound- callback for whenpathwas not found- The value from this is returned
default- default value to returned when not found - not allowed withnotFoundtogether
Returns
- module required or one of the following if not found
undefinedor- return value from
options.notFoundif it's specified options.defaultif it's specified
Throws
- rethrows any error that's not
MODULE_NOT_FOUNDfor the modulepath
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