web-apps/vendor/requirejs/tests/plugins/indexBuilder.js

45 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-03-11 00:48:53 +00:00
(function () {
function parse(name) {
var parts = name.split('?'),
index = parseInt(parts[0], 10),
choices = parts[1].split(':'),
choice = choices[index];
return {
index: index,
choices: choices,
choice: choice
};
}
define({
normalize: function (name, normalize) {
var parsed = parse(name),
choices = parsed.choices;
//Normalize each path choice.
for (i = 0; i < choices.length; i++) {
choices[i] = normalize(choices[i]);
}
return parsed.index + '?' + choices.join(':');
},
load: function (name, req, load, config) {
req([parse(name).choice], function (value) {
load(value);
});
},
//This is strictly not necessary (and *not* recommended),
//but just doing it as a test.
write: function (pluginName, moduleName, write) {
var parsed = parse(moduleName);
write("define('" + pluginName + "!" + moduleName +
"', ['" + parsed.choice + "'], function (value) { return value;});\n");
}
});
}());