UNPKG

split-require

Version:

Bundle splitting for CommonJS and ES modules (dynamic `import()`) in browserify

100 lines (80 loc) 2.34 kB
require=(function(_$expose,_$require){ _$expose.m = {}; _$expose.r = _$require; // Store dynamic bundle exports. var cache = {} // Store dynamic bundle loading callbacks, in case the same module is imported // multiple times simultaneously. var receivers = {} function load (index, cb) { // We already have this bundle. if (cache[index]) { if (cb) setTimeout(cb.bind(null, null, cache[index]), 0) return } var url = load.b[index] // TODO throw an error if we don't have the url // Combine callbacks if another one was already registered. var prev = receivers[index] receivers[index] = onload function onload (err, result) { if (prev) prev(err, result) else if (!err) cache[index] = result if (cb) cb(err, result) delete receivers[index] } // The <script> element for this bundle was already added. if (prev) return var s = document.createElement('script') s.async = true s.type = 'application/javascript' s.src = url s.onerror = function () { onload(Error('Failed to load')) } document.body.appendChild(s) } // Called by dynamic bundles once they have loaded. function loadedBundle (index, result) { if (receivers[index]) { receivers[index](null, result) } else { cache[index] = result } } // "Load" a module that we know is included in this bundle. function loadLocal (requirer, onload) { try { onload(null, requirer()) } catch (err) { onload(err) } } // Map dynamic bundle entry point IDs to URLs. load.b = {} // Used by the bundle. load.l = loadedBundle load.t = loadLocal var _$load_1 = load var _$module_split_require_mappings = {}; _$load_1.b = {"2":"bundle.2.js","4":"bundle.4.js"}; var _$c_5 = 30 var _$app_3 = {}; /* removed: var _$load_1 = require('split-require') */; var nums = [] var pending = 2 _$load_1(2, onloaded) _$load_1(4, onloaded) function onloaded (err, exports) { nums.push(exports) pending-- if (pending === 0) { onready() } } function onready () { nums.push(_$c_5) console.log(nums.reduce(add)) } function add (a, b) { return a + b } _$expose.m[1] = _$load_1; _$expose.m[5] = _$c_5; return _$expose}(function r(e,n){return r.m.hasOwnProperty(e)?r.m[e]:"function"!=typeof require||n?"function"==typeof r.r?r.r(e,1):void 0:require(e,1)}, typeof require==="function"?require:void 0));