nsloader

0.1.6 • Public • Published

Build Status Build Status npm version

NPM

nsLoader - Node.js namespace loader

nsloader is a small utility that allows using namespaces for requires.

Installation

$ npm install nsloader

Usage

var loader = require('nsloader');
 
loader.register('mymodule/*', function (ns) {
  var filename = path.join(__dirname, ns.substr('mymodule/'.length));
  return fs.existsSync(filename) ? filename : false;
});

Then the equivilant of:

var something = require('./lib/something');
var something = require('../../../lib/something');
var something = require('./something');

would be:

var something = loader.require('mymodule/lib/something');

Example

A real world example could be:

var path = require('path'),
    fs = require('fs'),
    loader = require('nsloader');
 
// Allow access to the mymodule index file.
loader.register('mymodule', function () {
  'use strict';
 
  return path.resolve(path.join(__dirname, '../index.js'));
});
 
// Allow access to anything after 'mymodule'.
loader.register('mymodule/*', function (ns) {
  'use strict';
 
  var filename = path.join(__dirname, ns.substring(7));
  if (fs.existsSync(filename + '.js')) {
    return filename + '.js';
  } else if (fs.existsSync(path.join(filename, 'index.js'))) {
    return path.join(filename, 'index.js');
  }
 
  return false;
});

Testing

A mocha test suite has been provided and can be run by:

$ npm test

Package Sidebar

Install

npm i nsloader

Weekly Downloads

2

Version

0.1.6

License

MIT

Last publish

Collaborators

  • orgun109uk