kopia lustrzana https://github.com/c9/core
Merge pull request +7862 from c9/parallel-requests
More parallel requests + caching for unpacked (online)devpull/117/merge
commit
e48310adfd
|
@ -302,6 +302,9 @@ module.exports = function(options) {
|
||||||
{
|
{
|
||||||
packagePath: "plugins/c9.ide.language/language",
|
packagePath: "plugins/c9.ide.language/language",
|
||||||
workspaceDir: workspaceDir,
|
workspaceDir: workspaceDir,
|
||||||
|
staticPrefix: options.packed
|
||||||
|
? staticPrefix
|
||||||
|
: options.ideBaseUrl + "/uph" + staticPrefix,
|
||||||
workerPrefix: options.CORSWorkerPrefix // "/static/standalone/worker"
|
workerPrefix: options.CORSWorkerPrefix // "/static/standalone/worker"
|
||||||
},
|
},
|
||||||
"plugins/c9.ide.language/keyhandler",
|
"plugins/c9.ide.language/keyhandler",
|
||||||
|
|
|
@ -274,6 +274,9 @@ var config = require.config = function(cfg) {
|
||||||
cfg.paths && Object.keys(cfg.paths).forEach(function(p) {
|
cfg.paths && Object.keys(cfg.paths).forEach(function(p) {
|
||||||
config.paths[p] = cfg.paths[p];
|
config.paths[p] = cfg.paths[p];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (cfg.baseUrlLoadBalancers)
|
||||||
|
config.baseUrlLoadBalancers = cfg.baseUrlLoadBalancers;
|
||||||
};
|
};
|
||||||
config.packages = Object.create(null);
|
config.packages = Object.create(null);
|
||||||
config.paths = Object.create(null);
|
config.paths = Object.create(null);
|
||||||
|
@ -322,9 +325,24 @@ require.toUrl = function(moduleName, ext, skipExt) {
|
||||||
if (!absRe.test(url)) {
|
if (!absRe.test(url)) {
|
||||||
url = (config.baseUrl || require.MODULE_LOAD_URL + "/") + url;
|
url = (config.baseUrl || require.MODULE_LOAD_URL + "/") + url;
|
||||||
}
|
}
|
||||||
|
if (url[0] === "/" && config.baseUrlLoadBalancers) {
|
||||||
|
var n = Math.abs(hashCode(url)) % config.baseUrlLoadBalancers.length;
|
||||||
|
url = config.baseUrlLoadBalancers[n] + url;
|
||||||
|
}
|
||||||
return url;
|
return url;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function hashCode(string) {
|
||||||
|
var result = 0, i, chr, len;
|
||||||
|
if (string.length == 0) return result;
|
||||||
|
for (i = 0, len = string.length; i < len; i++) {
|
||||||
|
chr = string.charCodeAt(i);
|
||||||
|
result = ((result << 5) - result) + chr;
|
||||||
|
result |= 0; // Convert to 32bit integer
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
var loadScript = function(path, id, callback) {
|
var loadScript = function(path, id, callback) {
|
||||||
// TODO use importScripts for webworkers
|
// TODO use importScripts for webworkers
|
||||||
var head = document.head || document.documentElement;
|
var head = document.head || document.documentElement;
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
plugin.consumes = [
|
||||||
|
"db", "connect.static"
|
||||||
|
];
|
||||||
|
plugin.provides = [
|
||||||
|
"unpacked_helper"
|
||||||
|
];
|
||||||
|
|
||||||
|
module.exports = plugin;
|
||||||
|
|
||||||
|
function plugin(options, imports, register) {
|
||||||
|
var connectStatic = imports["connect.static"];
|
||||||
|
var assert = require("assert");
|
||||||
|
var baseUrl = options.baseUrl;
|
||||||
|
var ideBaseUrl = options.ideBaseUrl;
|
||||||
|
assert(baseUrl, "baseUrl must be set");
|
||||||
|
assert(ideBaseUrl, "ideBaseUrl must be set");
|
||||||
|
|
||||||
|
var balancers = [
|
||||||
|
baseUrl + "/uph",
|
||||||
|
];
|
||||||
|
/* UNDONE: for now we put all static content on one domain
|
||||||
|
because of reports of CORS errors
|
||||||
|
if (!options.avoidSubdomains)
|
||||||
|
balancers.push(
|
||||||
|
ideBaseUrl
|
||||||
|
// We could include others but dogfooding URLs like
|
||||||
|
// vfs.newclient-lennartcl.c9.io don't have a cert, so
|
||||||
|
// let's not
|
||||||
|
// apiBaseUrl + "/uph",
|
||||||
|
// vfsBaseUrl + "/uph"
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
|
connectStatic.getRequireJsConfig().baseUrlLoadBalancers = balancers;
|
||||||
|
assert(connectStatic.getRequireJsConfig().baseUrlLoadBalancers);
|
||||||
|
|
||||||
|
register(null, {
|
||||||
|
"unpacked_helper": {}
|
||||||
|
});
|
||||||
|
}
|
Ładowanie…
Reference in New Issue