module: only cache package main
authorWyatt Preul <wpreul@gmail.com>
Thu, 12 Dec 2013 16:16:48 +0000 (10:16 -0600)
committerisaacs <i@izs.me>
Thu, 12 Dec 2013 17:38:47 +0000 (09:38 -0800)
lib/module.js

index 27bba73..77a2a8d 100644 (file)
@@ -94,11 +94,11 @@ function statPath(path) {
 }
 
 // check if the directory is a package.json dir
-var packageCache = {};
+var packageMainCache = {};
 
 function readPackage(requestPath) {
-  if (hasOwnProperty(packageCache, requestPath)) {
-    return packageCache[requestPath];
+  if (hasOwnProperty(packageMainCache, requestPath)) {
+    return packageMainCache[requestPath];
   }
 
   var fs = NativeModule.require('fs');
@@ -110,7 +110,7 @@ function readPackage(requestPath) {
   }
 
   try {
-    var pkg = packageCache[requestPath] = JSON.parse(json);
+    var pkg = packageMainCache[requestPath] = JSON.parse(json).main;
   } catch (e) {
     e.path = jsonPath;
     e.message = 'Error parsing ' + jsonPath + ': ' + e.message;
@@ -122,9 +122,9 @@ function readPackage(requestPath) {
 function tryPackage(requestPath, exts) {
   var pkg = readPackage(requestPath);
 
-  if (!pkg || !pkg.main) return false;
+  if (!pkg) return false;
 
-  var filename = path.resolve(requestPath, pkg.main);
+  var filename = path.resolve(requestPath, pkg);
   return tryFile(filename) || tryExtensions(filename, exts) ||
          tryExtensions(path.resolve(filename, 'index'), exts);
 }