jcfw-lite/gulp/browserify_prelude.js
2020-02-01 16:53:49 +08:00

42 lines
1.3 KiB
JavaScript

// Based on https://github.com/substack/browser-pack/blob/master/prelude.js
// modules are defined as an array
// [ module function, map of requireuires ]
//
// map of requireuires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the requireuire for previous bundles
(function outer (modules, cache, entry) {
function newRequire(name, jumped){
var module = cache[name];
if(!module) {
var moduleData = modules[name];
if(!moduleData) {
// this module is excluded from engine
return undefined;
}
var exports = {};
module = cache[name] = {exports: exports};
moduleData[0](function(x){
let v = x;
for (let key of Object.keys(moduleData[1])) {
if (key.includes(x)) {
v = moduleData[1][key];
break;
}
}
return newRequire(v || x);
//return newRequire(moduleData[1][x] || x);
},module,exports);
}
return module.exports;
}
for(var i=0;i<entry.length;i++) newRequire(entry[i]);
// Override the current require with this new one
return newRequire;
})