Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    rcloaderpublic

    rcloader

    Travis CI

    For build system plugins that need to fetch relative config files (like .jshintrc).

    Features

    • Find the closest config file (like .jshintrc) relative to the file you are linting
    • Lookups are cached to limit IO operations
    • Accepts input directly from plugin consumers to
      • specifiy a file that should always be used
      • specify a default file
      • specify overrides
      • disable file lookup

    Install

    npm install rcloader

    Use

    This plugin was written to specifically address this issue for a couple of gulp plugins.

    within a gulp plugin

    var RcLoader = require('rcloader');
    var map = require('map-stream');
     
    module.exports = function MyGulpPlugin(options) {
      var rcLoader = new RcLoader('.configfilename', options);
     
      return map(function (file, cb) {
        // get the options for this file specifically
        rcLoader.for(file.path, function (err, fileOpts) {
          // do something cool
     
          // send the file along
          cb(null, file);
        });
      });
    };

    If you would rather, just skip the callback and it will run synchronously.

    var fileOpts = rcLoader.for(file.path, options);

    Options

    The second argument to the RcLoader constructor should be the options that plugin consumers define, and it can take a few different forms.

    If the user specifies a string, it is used as a path to the only config file that they care about. Calling rcLoader.for(path) will always return a copy of the config file at that path.

    If the user specifies an object, the following keys will be stripped from it:

    • lookup, Boolean: Find the closest config file each time .for() is called. default is true, unless options is a path.
    • defaultFile, string: Specify a default configuration file.

    If defaultFile is not specified, all values except lookup will override values found in the config file.

    install

    npm i rcloader

    Downloadsweekly downloads

    120,330

    version

    0.2.2

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar