Skip to content

Commit 9e91a03

Browse files
committed
changes see changelog v0.2.0
1 parent 8f578f0 commit 9e91a03

File tree

1 file changed

+29
-18
lines changed

1 file changed

+29
-18
lines changed

loom.js

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
* @author Maximilian Beck
55
* @link http://glumb.de/loomjs
66
* @license http://opensource.org/licenses/MIT
7-
* @version 0.1.0
7+
* @version 0.2.0
88
*/
99

10-
module = (function () {
10+
(function (namespace) {
1111
var debug = false,
1212

1313
moduleContainer = {},
14-
waitingFor = {}, //'a':['b','c'] module b,c are waiting for a
14+
moduleQueue = {}, //'a':['b','c'] module b,c are waiting for a
1515
requireId = 0;
1616

1717
function define(moduleName, deps, module, resolve) { //('n',[d],m,r) ('n',m,r) ('n',[d],m) ('n',m)
@@ -36,7 +36,7 @@ module = (function () {
3636
resolved: false
3737
};
3838

39-
if (waitingFor[moduleName] || resolve) {
39+
if (moduleQueue[moduleName] || resolve) {
4040
resolveModuleDeps(moduleName);
4141
}
4242
}
@@ -50,28 +50,32 @@ module = (function () {
5050
// adds moduleName to the list of the module it is waiting for
5151
function addWaitingFor(moduleName, waitingForName) {
5252
log('module "' + moduleName + '" waiting for module "' + waitingForName + '"');
53-
var pendingEntry = waitingFor[waitingForName] || []; //['a','b'] or []
53+
var pendingEntry = moduleQueue[waitingForName] || []; //['a','b'] or []
5454

5555
if (!(pendingEntry.indexOf(moduleName) > -1)) {
5656
pendingEntry.push(moduleName);
57-
waitingFor[waitingForName] = pendingEntry;
57+
moduleQueue[waitingForName] = pendingEntry;
5858
}
5959
}
6060

6161
function removeWaitingFor(moduleName) {
62-
log('deleting waitingFor: "' + moduleName + '"');
63-
delete waitingFor[moduleName];
62+
log('deleting moduleQueue: "' + moduleName + '"');
63+
delete moduleQueue[moduleName];
6464
}
6565

6666
function resolveModule(moduleName, deps) {
6767

6868
var module = moduleContainer[moduleName];
6969

7070
module.resolved = true;
71-
module.module = (deps !== undefined && deps.length > 0) ? module.module.apply(this, deps) : module.module.apply(this);
72-
73-
if (waitingFor[moduleName]) {
74-
var waitingForArr = waitingFor[moduleName]; //['b','c'] b, c waiting for module
71+
module.module = (typeof module.module !== 'function') ?
72+
module.module :
73+
(deps !== undefined && deps.length > 0) ?
74+
module.module.apply(null, deps) :
75+
module.module.apply(null);
76+
77+
if (moduleQueue[moduleName]) {
78+
var waitingForArr = moduleQueue[moduleName]; //['b','c'] b, c waiting for module
7579
for (var i = 0; i < waitingForArr.length; i++) {
7680
resolveModuleDeps(waitingForArr[i]);
7781
}
@@ -127,9 +131,16 @@ module = (function () {
127131
console.log(message);
128132
}
129133

130-
return {
131-
"debug": setDebug,
132-
"require": require,
133-
"define": define
134-
}
135-
})();
134+
namespace.define = define;
135+
namespace.require = require;
136+
137+
namespace.define.amd = true;
138+
139+
namespace.loom = {
140+
"queue": moduleQueue,
141+
"modules": moduleContainer,
142+
"requireCounter": requireId,
143+
"debug": setDebug
144+
};
145+
146+
})(window);

0 commit comments

Comments
 (0)