kopia lustrzana https://github.com/c9/core
Merge branch 'master' of github.com:c9/newclient into profile-005-5-page-cache-project-page
commit
a00eef3fec
|
@ -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;
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
"c9"
|
"c9"
|
||||||
],
|
],
|
||||||
"c9plugins": {
|
"c9plugins": {
|
||||||
"c9.ide.language": "#7be4170efe",
|
"c9.ide.language": "#db72b232cf",
|
||||||
"c9.ide.language.css": "#ef8a28943e",
|
"c9.ide.language.css": "#ef8a28943e",
|
||||||
"c9.ide.language.generic": "#7505e7902e",
|
"c9.ide.language.generic": "#7505e7902e",
|
||||||
"c9.ide.language.html": "#bbe81afed1",
|
"c9.ide.language.html": "#bbe81afed1",
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
"c9.ide.local": "#a9703b630c",
|
"c9.ide.local": "#a9703b630c",
|
||||||
"c9.ide.find": "#6cc6d3379d",
|
"c9.ide.find": "#6cc6d3379d",
|
||||||
"c9.ide.find.infiles": "#72582de3cd",
|
"c9.ide.find.infiles": "#72582de3cd",
|
||||||
"c9.ide.find.replace": "#e4daf722b8",
|
"c9.ide.find.replace": "#44772dd796",
|
||||||
"c9.ide.run.debug": "#c7f1ed5d5d",
|
"c9.ide.run.debug": "#c7f1ed5d5d",
|
||||||
"c9.automate": "#47e2c429c9",
|
"c9.automate": "#47e2c429c9",
|
||||||
"c9.ide.ace.emmet": "#0ab4c6cd68",
|
"c9.ide.ace.emmet": "#0ab4c6cd68",
|
||||||
|
@ -112,6 +112,6 @@
|
||||||
"c9.ide.threewaymerge": "#229382aa0b",
|
"c9.ide.threewaymerge": "#229382aa0b",
|
||||||
"c9.ide.undo": "#b028bcb4d5",
|
"c9.ide.undo": "#b028bcb4d5",
|
||||||
"c9.ide.upload": "#0bd010d3dc",
|
"c9.ide.upload": "#0bd010d3dc",
|
||||||
"c9.ide.welcome": "#4b9685584c"
|
"c9.ide.welcome": "#9eda5a8706"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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