0.1.0 • Published 10 years ago

looker v0.1.0

Weekly downloads
3
License
ISC
Repository
github
Last release
10 years ago

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.

Examples

// 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(err, content, fullPath) {
	// 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(err, module, fullPath) {
	// 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(content, filepath) {
	
	// 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

});
0.1.0

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago