Skip to content

Commit

Permalink
add public/receiver.js from transporter until i can figure out how to…
Browse files Browse the repository at this point in the history
… reference it properly
  • Loading branch information
deanlandolt committed Apr 21, 2011
1 parent 1e804e7 commit 7043ad5
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 1 deletion.
67 changes: 67 additions & 0 deletions public/receiver.js
@@ -0,0 +1,67 @@
/** A very lightweight implementation of CommonJS Asynchronous Module Definition
* (require.def) and
* require.ensure. This can only receive modules, it will not proactively attempt to load
* any modules, so you must leave the default transporter setting of
* resolveDeps on (true) to use this module receiver.
*/
(function(){
var factories = {},
modules = {};
function req(id){
var module = modules[id];
if(module){
return module;
}
if(!factories[id]){
throw new Error("Module " + id + " not found");
}
var factory = factories[id];
var args = factory.deps || (factory.length ? ["require", "exports", "module"] : []);
var exports = modules[id] = {};
for(var i = 0; i < args.length; i++){
var arg = args[i];
switch(arg){
case "require": arg = function(relativeId){
if(relativeId.charAt(0) === '.'){
relativeId = id.substring(0, id.lastIndexOf('/') + 1) + relativeId;
while(lastId !== relativeId){
var lastId = relativeId;
relativeId = relativeId.replace(/\/[^\/]*\/\.\.\//,'/');
}
relativeId = relativeId.replace(/\/\.\//g,'/');
}
return req(relativeId);
}; break;
case "exports": arg = exports; break;
case "module": var module = arg = {exports: exports}; break;
default: arg = req(arg);
}
args[i] = arg;
}

exports = factory.apply(this, args);
if(module && module.exports != modules[id]){
exports = module.exports;
}
if(exports){
return modules[id] = exports;
}
return modules[id];
}
define = function(id, deps, factory){
if(typeof deps == "function"){
factories[id] = deps;
}else{
(factories[id] = factory).deps = deps;
}
};

require = {
ensure: function(modules, callback){
for(var i = 0; i < modules.length; i++){
modules = req(modules[i]);
}
callback(req);
}
};
})();
2 changes: 1 addition & 1 deletion templates/Page.template
Expand Up @@ -2,7 +2,7 @@
<title>{{pageName}}</title>
<link rel="stylesheet" href="/css/common.css" />
<link rel="stylesheet" href="/css/wikiContent.css" />
<script src="/lib/transporter/receiver.js"></script>
<script src="/receiver.js"></script>
<script src="/lib/monitor.js"></script>
<body>
<div id="headerContainer"><span class="pageName">{{pageName}}<span></div>
Expand Down

0 comments on commit 7043ad5

Please sign in to comment.