diff --git a/README.md b/README.md
index ace8103..5379842 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ To use transporter, include the appliance in your JSGI stack:
Now you can use a client side module loader like RequireJS, Yabble, or the simple loader
that comes with transporter to load your modules:
-
+
If my-module.js requires other modules (using a require call), these modules will
diff --git a/lib/jsgi/transporter.js b/lib/jsgi/transporter.js
index ecf82cd..fe8b440 100644
--- a/lib/jsgi/transporter.js
+++ b/lib/jsgi/transporter.js
@@ -54,8 +54,8 @@ exports.Transporter = function(options, app) {
},
body: {
forEach: function(write){
- if(requestedModules[0] === "transporter/loader"){
- write(loader("transporter/loader.js"));
+ if(requestedModules[0] === "transporter/receiver"){
+ write(loader("transporter/receiver.js"));
requestedModules.shift();
}
if(converter.start){
diff --git a/lib/loader.js b/lib/receiver.js
similarity index 62%
rename from lib/loader.js
rename to lib/receiver.js
index f3e59df..e1f4c0b 100644
--- a/lib/loader.js
+++ b/lib/receiver.js
@@ -1,9 +1,10 @@
/** A very lightweight implementation of transport/D's require.define and
- * require.ensure
+ * require.ensure. This can only receive modules, it will not proactively attempt to load
+ * any modules.
*/
(function(){
var factories = {},
- loadedModules = {};
+ modules = {};
function makeRequire(currentId){
return function(id){
if(id.charAt(0) === '.'){
@@ -14,24 +15,27 @@
}
id = id.replace(/\/\.\//g,'/');
}
- var module = loadedModules[id];
+ var module = modules[id];
if(module){
return module;
}
if(!factories[id]){
- throw new Error("Module " + id + " not defined");
+ throw new Error("Module " + id + " not found");
}
- var module = factories[id](makeRequire(id), loadedModules[id] = {}, {});
+ var module = factories[id](makeRequire(id), modules[id] = {}, {});
if(module){
- return loadedModules[id] = module;
+ return modules[id] = module;
}
- return loadedModules[id];
+ return modules[id];
};
}
require = {
define: function(modules){
for(var i in modules){
factories[i] = modules[i];
+ if(typeof factories[i] != "function"){
+ throw new Error("Module " + id + " must be defined as a function");
+ }
}
},
ensure: function(modules, callback){