Create a gist now

Instantly share code, notes, and snippets.

defs = {};
modules = {};
function define(name, fn) {
defs[name] = fn;
}
function require(name) {
console.log("Loading " + name);
if (modules.hasOwnProperty(name)) return modules[name];
if (defs.hasOwnProperty(name)) {
var fn = defs[name];
defs[name] = function () { throw new Error("Circular Dependency"); }
return modules[name] = fn();
}
throw new Error("Module not found: " + name);
}
define('foo', function () {
return 42;
});
define('mymod', function () {
return {
stuff: "goes here",
"and here": require('foo')
};
});
var MyMod = require('mymod');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment