allow exporting function in mini_require.js

This commit is contained in:
nightwing 2013-04-30 01:04:00 +04:00
commit 23f9f6f849

View file

@ -61,10 +61,13 @@ var _define = function(module, deps, payload) {
if (arguments.length == 2)
payload = deps;
if (!_define.modules)
_define.modules = {};
_define.modules[module] = payload;
if (!_define.modules) {
_define.modules = Object.create(null);
_define.payloads = Object.create(null);
}
_define.payloads[module] = payload;
define.modules[module] = null;
};
/**
@ -130,30 +133,27 @@ var lookup = function(parentId, moduleName) {
var module = _define.modules[moduleName];
if (!module) {
return null;
module = _define.payloads[moduleName];
if (typeof module === 'function') {
var exports = {};
var mod = {
id: moduleName,
uri: '',
exports: exports,
packaged: true
};
var req = function(module, callback) {
return _require(moduleName, module, callback);
};
var returnValue = module(req, exports, mod);
exports = returnValue || mod.exports;
_define.modules[moduleName] = exports;
delete _define.payloads[moduleName];
}
module = _define.modules[moduleName] = exports;
}
if (typeof module === 'function') {
var exports = {};
var mod = {
id: moduleName,
uri: '',
exports: exports,
packaged: true
};
var req = function(module, callback) {
return _require(moduleName, module, callback);
};
var returnValue = module(req, exports, mod);
exports = returnValue || mod.exports;
// cache the resulting module object for next time
_define.modules[moduleName] = exports;
return exports;
}
return module;
};