]> git.wh0rd.org - tt-rss.git/blob - lib/dojo/request/registry.js.uncompressed.js
modify dojo rebuild script to remove uncompressed files
[tt-rss.git] / lib / dojo / request / registry.js.uncompressed.js
1 define("dojo/request/registry", [
2 'require',
3 '../_base/array',
4 './default!platform',
5 './util'
6 ], function(require, array, fallbackProvider, util){
7 var providers = [];
8
9 function request(url, options){
10 var matchers = providers.slice(0),
11 i = 0,
12 matcher;
13
14 while(matcher=matchers[i++]){
15 if(matcher(url, options)){
16 return matcher.request.call(null, url, options);
17 }
18 }
19
20 return fallbackProvider.apply(null, arguments);
21 }
22
23 function createMatcher(match, provider){
24 var matcher;
25
26 if(provider){
27 if(match.test){
28 // RegExp
29 matcher = function(url){
30 return match.test(url);
31 };
32 }else if(match.apply && match.call){
33 matcher = function(){
34 return match.apply(null, arguments);
35 };
36 }else{
37 matcher = function(url){
38 return url === match;
39 };
40 }
41
42 matcher.request = provider;
43 }else{
44 // If only one argument was passed, assume it is a provider function
45 // to apply unconditionally to all URLs
46 matcher = function(){
47 return true;
48 };
49
50 matcher.request = match;
51 }
52
53 return matcher;
54 }
55
56 request.register = function(url, provider, first){
57 var matcher = createMatcher(url, provider);
58 providers[(first ? 'unshift' : 'push')](matcher);
59
60 return {
61 remove: function(){
62 var idx;
63 if(~(idx = array.indexOf(providers, matcher))){
64 providers.splice(idx, 1);
65 }
66 }
67 };
68 };
69
70 request.load = function(id, parentRequire, loaded, config){
71 if(id){
72 // if there's an id, load and set the fallback provider
73 require([id], function(fallback){
74 fallbackProvider = fallback;
75 loaded(request);
76 });
77 }else{
78 loaded(request);
79 }
80 };
81
82 util.addCommonMethods(request);
83
84 return request;
85 });