hem
Version:
stitches CommonJS, and ties up other lose ends of web-app development.
74 lines (62 loc) • 2.27 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var Module, basename, dirname, extname, invalidDirs, isAbsolute, join, modulePaths, modulerize, ref, repl, resolve, sep,
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
Module = require('module');
ref = require('path'), join = ref.join, extname = ref.extname, dirname = ref.dirname, basename = ref.basename, resolve = ref.resolve, sep = ref.sep;
isAbsolute = function(path) {
return /^\//.test(path);
};
modulerize = function(id, filename) {
var baseName, dirName, ext, modName;
if (filename == null) {
filename = id;
}
ext = extname(filename);
dirName = dirname(id);
baseName = basename(id, ext);
if (dirName === baseName) {
modName = baseName;
} else {
modName = join(dirname(id), basename(id, ext));
}
return modName.replace(/\\/g, '/');
};
modulePaths = Module._nodeModulePaths(process.cwd());
invalidDirs = ['/', '.'];
repl = {
id: 'repl',
filename: join(process.cwd(), 'repl'),
paths: modulePaths
};
module.exports = function(request, parent) {
var _, dir, filename, id, index, paths, ref1;
if (parent == null) {
parent = repl;
}
ref1 = Module._resolveLookupPaths(request, parent), _ = ref1[0], paths = ref1[1];
filename = Module._findPath(request, paths);
if (!filename) {
throw new Error("Cannot find module: " + request + ". Have you run `npm install .` ?");
}
dir = filename;
while (indexOf.call(invalidDirs, dir) < 0 && indexOf.call(modulePaths, dir) < 0) {
dir = dirname(dir);
}
if (indexOf.call(invalidDirs, dir) >= 0) {
index = filename.lastIndexOf("" + sep + request);
if (index > 0) {
dir = filename.substring(0, index);
modulePaths.push(dir);
} else {
throw new Error("Load path not found for " + filename);
}
}
id = filename.replace("" + dir + sep, '');
return [modulerize(id, filename), filename];
};
module.exports.paths = function(filename) {
return Module._nodeModulePaths(dirname(filename));
};
module.exports.modulerize = modulerize;
}).call(this);