lazy-cache

    1.0.4 • Public • Published

    lazy-cache NPM version NPM downloads Build Status

    Cache requires to be lazy-loaded when needed.

    Install

    Install with npm:

    $ 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

    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.

    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

    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

    var utils = require('lazy-cache')(require);
     
    // alias `ansi-yellow` as `yellow`
    utils('ansi-yellow', 'yellow');
    console.log(utils.yellow('foo'));

    Browserify usage

    Example

    var utils = require('lazy-cache')(require);
    // temporarily re-assign `require` to trick browserify
    var fn = require;
    require = utils;
    // list module dependencies (here, `require` is actually `lazy-cache`)
    require('glob');
    require = fn; // restore the native `require` 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:

    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:

    $ npm install verb && npm run docs

    Or, if verb is installed globally:

    $ verb

    Running tests

    Install dev dependencies:

    $ 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.

    Install

    npm i lazy-cache@1.0.4

    Version

    1.0.4

    License

    MIT

    Last publish

    Collaborators

    • doowb
    • jonschlinkert