lazy-cache NPM version NPM downloads Build Status

Cache requires to be lazy-loaded when needed.

Install

Install with npm:

sh $ npm install lazy-cache --save

If you use webpack and are experiencing issues, try using unlazy-loader, a webpack loader that fixes the bug that prevents webpack from working with native javascript getters.

Usage

js var utils = require('lazy-cache')(require);

Use as a property on lazy

The module is also added as a property to the lazy function so it can be called without having to call a function first.

```js var utils = require('lazy-cache')(require);

// npm install glob utils('glob');

// glob sync console.log(utils.glob.sync('*.js'));

// glob async utils.glob('*.js', function (err, files) { console.log(files); }); ```

Use as a function

```js var utils = require('lazy-cache')(require); var glob = utils('glob');

// glob is a now a function that may be called when needed glob().sync('foo/*.js'); ```

Aliases

An alias may be passed as the second argument if you don't want to use the automatically camel-cased variable name.

Example

```js var utils = require('lazy-cache')(require);

// alias ansi-yellow as yellow utils('ansi-yellow', 'yellow'); console.log(utils.yellow('foo')); ```

Browserify usage

Example

``js var utils = require('lazy-cache')(require); // temporarily re-assignrequireto trick browserify var fn = require; require = utils; // list module dependencies (here,requireis actuallylazy-cache) require('glob'); require = fn; // restore the nativerequire` function

/* * Now you can use glob with the utils.glob variable /

// sync console.log(utils.glob.sync('*.js'));

// async utils.glob('*.js', function (err, files) { console.log(files.join('\n')); }); ```

Kill switch

In certain rare edge cases it may be necessary to unlazy all lazy-cached dependencies (5 reported cases after ~30 million downloads).

To force lazy-cache to immediately invoke all dependencies, do:

js process.env.UNLAZY = true;

Related projects

You might also be interested in these projects:

lint-deps: CLI tool that tells you when dependencies are missing from package.json and offers you a… more | homepage

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

Generate readme and API documentation with verb:

sh $ npm install verb && npm run docs

Or, if verb is installed globally:

sh $ verb

Running tests

Install dev dependencies:

sh $ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.


This file was generated by verb, v0.9.0, on April 22, 2016.