public
Last active — forked from creationix/module.js

  • Download Gist
module.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
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);
}
sampleusage.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11
define('foo', function () {
return 42;
});
define('mymod', function () {
return {
stuff: "goes here",
"and here": require('foo')
};
});
 
var MyMod = require('mymod');

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.