node package manager

looker

Looks for files, and loads or requires them

Looker

A utility library to help finding and loading files or modules. Give looker a set of paths to look in, and then call one of looker's methods to find and load the file. Paths can be specified with a priority, so you can specify a cascading set of places to look and only load the first matching result. This library can also be used to require in javascript files into a node app.

// Create a new looker 
var look = new require('looker')();
 
// Add some lookup paths 
look.lookupPath('.');
look.lookupPath('..');
 
// A lookup path to look in first, 
// The default priority is 500, so 
// any path with a lower priority value 
// will be looked in first.  This will 
// look two directories up before 
// looking in the next two 
look.lookupPath('../..', 100);
 
// Check if a file exists 
look.exists('package.json', function(fullPath) {
// The full path to the resolved package.json 
// Ex: /Users/you/your-project/package.json 
if (fullPath) {
console.log('Yeah, found it: ' + fullPath);
} else {
console.error('Could not fine file');
}
});
 
// Read a file content 
look.readFile('package.json', function(errcontentfullPath) {
// Check for errors 
if (err) {
console.error('Either the file was not found or is not readable');
return;
}
 
// Use the content 
var pkg = JSON.parse(content);
console.log('Version: ' + pkg.version);
});
 
// Require a file 
look.require('index.js', function(errmodulefullPath) {
// Check for errors 
if (err) {
console.error('Either it did not exist, or failed to be required');
return;
}
// Use the module 
module.someFunc();
});
 
// Require a module, sync 
var m = look.requireSync('index.js');
if (!m) {
// Module not found 
} else {
// Do something with the module 
}
 
// Require all files the directores 
look.requireAll(function(modules) {
 
// Modules is a hash of resolved paths to  
// the required content of the module: 
// { 
//   '/full/path/to/file.js': [Function] 
//   '/full/path/file.js': [Function] 
// } 
});
 
// Try for a file name in each lookup path 
look.tryFiles([
'home.html',
'index.html'
], function(contentfilepath) {
// Looks for the first file, home.html, in each path,  
// if it was not found, it moves on to index.html 
// The content and filepath returned are the first 
// file found that matched the filemname 
 
});