Skip to content

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

Notifications You must be signed in to change notification settings

spalger/rcloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

Stars

Watchers

Forks

Packages

No packages published