flow like the river
This commit is contained in:
commit
013fe673f3
42435 changed files with 5764238 additions and 0 deletions
83
BACK_BACK/node_modules/parcel-bundler/lib/builtins/bundle-loader.js
generated
vendored
Executable file
83
BACK_BACK/node_modules/parcel-bundler/lib/builtins/bundle-loader.js
generated
vendored
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
var getBundleURL = require('./bundle-url').getBundleURL;
|
||||
|
||||
function loadBundlesLazy(bundles) {
|
||||
if (!Array.isArray(bundles)) {
|
||||
bundles = [bundles]
|
||||
}
|
||||
|
||||
var id = bundles[bundles.length - 1];
|
||||
|
||||
try {
|
||||
return Promise.resolve(require(id));
|
||||
} catch (err) {
|
||||
if (err.code === 'MODULE_NOT_FOUND') {
|
||||
return new LazyPromise(function (resolve, reject) {
|
||||
loadBundles(bundles.slice(0, -1))
|
||||
.then(function () {
|
||||
return require(id);
|
||||
})
|
||||
.then(resolve, reject);
|
||||
});
|
||||
}
|
||||
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
function loadBundles(bundles) {
|
||||
return Promise.all(bundles.map(loadBundle));
|
||||
}
|
||||
|
||||
var bundleLoaders = {};
|
||||
function registerBundleLoader(type, loader) {
|
||||
bundleLoaders[type] = loader;
|
||||
}
|
||||
|
||||
module.exports = exports = loadBundlesLazy;
|
||||
exports.load = loadBundles;
|
||||
exports.register = registerBundleLoader;
|
||||
|
||||
var bundles = {};
|
||||
function loadBundle(bundle) {
|
||||
var id;
|
||||
if (Array.isArray(bundle)) {
|
||||
id = bundle[1];
|
||||
bundle = bundle[0];
|
||||
}
|
||||
|
||||
if (bundles[bundle]) {
|
||||
return bundles[bundle];
|
||||
}
|
||||
|
||||
var type = (bundle.substring(bundle.lastIndexOf('.') + 1, bundle.length) || bundle).toLowerCase();
|
||||
var bundleLoader = bundleLoaders[type];
|
||||
if (bundleLoader) {
|
||||
return bundles[bundle] = bundleLoader(getBundleURL() + bundle)
|
||||
.then(function (resolved) {
|
||||
if (resolved) {
|
||||
module.bundle.register(id, resolved);
|
||||
}
|
||||
|
||||
return resolved;
|
||||
}).catch(function(e) {
|
||||
delete bundles[bundle];
|
||||
|
||||
throw e;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function LazyPromise(executor) {
|
||||
this.executor = executor;
|
||||
this.promise = null;
|
||||
}
|
||||
|
||||
LazyPromise.prototype.then = function (onSuccess, onError) {
|
||||
if (this.promise === null) this.promise = new Promise(this.executor)
|
||||
return this.promise.then(onSuccess, onError)
|
||||
};
|
||||
|
||||
LazyPromise.prototype.catch = function (onError) {
|
||||
if (this.promise === null) this.promise = new Promise(this.executor)
|
||||
return this.promise.catch(onError)
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue