1 | define([ |
---|
2 | "./buildControlBase" |
---|
3 | ], function(bc){ |
---|
4 | var defaultBc = { |
---|
5 | // v1.6- default values |
---|
6 | internStrings:true, |
---|
7 | internSkipList:[], |
---|
8 | optimize:"", |
---|
9 | layerOptimize:"shrinksafe", |
---|
10 | useSourceMaps:1, |
---|
11 | cssOptimize:"", |
---|
12 | cssImportIgnore:"", |
---|
13 | stripConsole:"normal", |
---|
14 | scopeMap:[], |
---|
15 | insertAbsMids:1, |
---|
16 | applyDojoPragmas:1, |
---|
17 | localeList:"ar,ca,cs,da,de,el,en-gb,en-us,es-es,fi-fi,fr-fr,he-il,hu,it-it,ja-jp,ko-kr,nl-nl,nb,pl,pt-br,pt-pt,ru,sk,sl,sv,th,tr,zh-tw,zh-cn".split(","), |
---|
18 | |
---|
19 | |
---|
20 | // this is a dojo pragma |
---|
21 | replaceLoaderConfig:1, |
---|
22 | |
---|
23 | defaultConfig:{ |
---|
24 | hasCache:{ |
---|
25 | // these are the values given above, not-built client code may test for these so they need to be available |
---|
26 | 'dojo-built':1, |
---|
27 | 'dojo-loader':1, |
---|
28 | 'dom':1, |
---|
29 | 'host-browser':1, |
---|
30 | "config-tlmSiblingOfDojo":1, |
---|
31 | |
---|
32 | // default |
---|
33 | "config-selectorEngine":"acme" |
---|
34 | }, |
---|
35 | async:0 |
---|
36 | }, |
---|
37 | |
---|
38 | files:[], |
---|
39 | dirs:[], |
---|
40 | trees:[], |
---|
41 | replacements:{}, |
---|
42 | |
---|
43 | staticHasFeatures:{ |
---|
44 | // consider turning these hard on for standard 1.x build |
---|
45 | //'config-publishRequireResult':1, |
---|
46 | //'config-tlmSiblingOfDojo':1, |
---|
47 | |
---|
48 | 'extend-dojo':1, |
---|
49 | 'dojo-amd-factory-scan':0, |
---|
50 | 'dojo-built':1, |
---|
51 | 'dojo-combo-api':0, |
---|
52 | 'dojo-log-api':1, |
---|
53 | 'dojo-test-sniff':0,// must be turned on for several tests to work |
---|
54 | 'dojo-config-addOnLoad':1, |
---|
55 | 'dojo-config-api':1, |
---|
56 | 'dojo-config-require':1, |
---|
57 | 'dojo-dom-ready-api':1, |
---|
58 | 'dojo-guarantee-console':1, |
---|
59 | 'dojo-has-api':1, |
---|
60 | 'dojo-inject-api':1, |
---|
61 | 'dojo-loader':1, |
---|
62 | 'dojo-modulePaths':1, |
---|
63 | 'dojo-moduleUrl':1, |
---|
64 | 'dojo-publish-privates':0, |
---|
65 | 'dojo-requirejs-api':0, |
---|
66 | 'dojo-sniff':1, |
---|
67 | 'dojo-sync-loader':1, |
---|
68 | 'dojo-timeout-api':1, |
---|
69 | 'dojo-trace-api':0, |
---|
70 | 'dojo-undef-api':0, |
---|
71 | 'dojo-v1x-i18n-Api':1, |
---|
72 | 'dojo-xhr-factory':1, |
---|
73 | "dojo-fast-sync-require":1, |
---|
74 | 'config-deferredInstrumentation':1, |
---|
75 | 'dom':1, |
---|
76 | 'host-browser':1, |
---|
77 | 'host-node':0, |
---|
78 | 'host-rhino':0 |
---|
79 | }, |
---|
80 | |
---|
81 | discoveryProcs:["build/discover"], |
---|
82 | |
---|
83 | plugins:{ |
---|
84 | "dojo/text":"build/plugins/text", |
---|
85 | "dojo/i18n":"build/plugins/i18n", |
---|
86 | "dojo/has":"build/plugins/has", |
---|
87 | "dojo/domReady":"build/plugins/domReady", |
---|
88 | "dojo/loadInit":"build/plugins/loadInit", |
---|
89 | "dojo/require":"build/plugins/require", |
---|
90 | "dojo/selector/_loader":"build/plugins/querySelector" |
---|
91 | }, |
---|
92 | |
---|
93 | gates:[ |
---|
94 | // [synchronized?, gate-name, gate-message] |
---|
95 | [0, "read", "reading resources"], |
---|
96 | [0, "text", "processing raw resource content"], |
---|
97 | [0, "tokenize", "tokenizing resource"], |
---|
98 | [0, "tokens", "processing resource tokens"], |
---|
99 | [0, "parse", "parsing resource"], |
---|
100 | [1, "ast", "processing resource AST"], |
---|
101 | [1, "optimize", "executing global optimizations"], |
---|
102 | [1, "write", "writing resources"], |
---|
103 | [1, "cleanup", "cleaning up"], |
---|
104 | [1, "report", "reporting"] |
---|
105 | ], |
---|
106 | |
---|
107 | transformConfig: {}, |
---|
108 | |
---|
109 | transforms:{ |
---|
110 | trace: ["build/transforms/trace", "read"], |
---|
111 | read: ["build/transforms/read", "read"], |
---|
112 | dojoPragmas: ["build/transforms/dojoPragmas", "read"], |
---|
113 | insertSymbols: ["build/transforms/insertSymbols", "read"], |
---|
114 | depsDeclarative: ["build/transforms/depsDeclarative", "read"], |
---|
115 | depsScan: ["build/transforms/depsScan", "ast"], |
---|
116 | hasFixup: ["build/transforms/hasFixup", "ast"], |
---|
117 | write: ["build/transforms/write", "write"], |
---|
118 | writeAmd: ["build/transforms/writeAmd", "write"], |
---|
119 | writeOptimized: ["build/transforms/writeOptimized", "write"], |
---|
120 | copy: ["build/transforms/copy", "write"], |
---|
121 | writeDojo: ["build/transforms/writeDojo", "write"], |
---|
122 | optimizeCss: ["build/transforms/optimizeCss", "optimize"], |
---|
123 | writeCss: ["build/transforms/writeCss", "write"], |
---|
124 | hasFindAll: ["build/transforms/hasFindAll", "read"], |
---|
125 | hasReport: ["build/transforms/hasReport", "cleanup"], |
---|
126 | depsDump: ["build/transforms/depsDump", "cleanup"], |
---|
127 | dojoReport: ["build/transforms/dojoReport", "report"], |
---|
128 | report: ["build/transforms/report", "report"] |
---|
129 | }, |
---|
130 | |
---|
131 | transformJobs:[[ |
---|
132 | // immediately filter the stuff to not be transformed in any way |
---|
133 | function(resource, bc){ |
---|
134 | return(bc.mini && resource.tag.miniExclude) || (!bc.copyTests && resource.tag.test) || (resource.tag.ignore); |
---|
135 | }, |
---|
136 | [] |
---|
137 | ],[ |
---|
138 | // if the tag says just copy, then just copy |
---|
139 | function(resource, bc){ |
---|
140 | return resource.tag.copyOnly; |
---|
141 | }, |
---|
142 | ["copy"] |
---|
143 | ],[ |
---|
144 | // the synthetic report module |
---|
145 | function(resource, bc){ |
---|
146 | return resource.tag.report; |
---|
147 | }, |
---|
148 | ["dojoReport", "insertSymbols", "report"] |
---|
149 | ],[ |
---|
150 | // dojo.js, the loader |
---|
151 | function(resource, bc){ |
---|
152 | if(resource.mid=="dojo/dojo"){ |
---|
153 | bc.loader = resource; |
---|
154 | resource.boots = []; |
---|
155 | // the loader is treated as an AMD module when creating the "dojo" layer, but and AMD dependency scan won't |
---|
156 | // work because it's not an AMD module; therefore, initialize deps here and make sure not to do the depsScan transform |
---|
157 | resource.deps = []; |
---|
158 | bc.amdResources[resource.mid] = resource; |
---|
159 | return true; |
---|
160 | } |
---|
161 | return false; |
---|
162 | }, |
---|
163 | ["read", "dojoPragmas", "hasFindAll", "hasFixup", "writeDojo", "writeOptimized"] |
---|
164 | ],[ |
---|
165 | // package has module |
---|
166 | function(resource, bc){ |
---|
167 | if(/^\w+\/has$/.test(resource.mid)){ |
---|
168 | bc.amdResources[resource.mid] = resource; |
---|
169 | return true; |
---|
170 | } |
---|
171 | return false; |
---|
172 | }, |
---|
173 | ["read", "dojoPragmas", "hasFindAll", "hasFixup", "depsScan", "writeAmd", "writeOptimized", "hasReport", "depsDump"] |
---|
174 | ],[ |
---|
175 | // flattened nls bundles |
---|
176 | function(resource, bc){ |
---|
177 | return !!resource.tag.flattenedNlsBundle; |
---|
178 | }, |
---|
179 | ["writeAmd", "writeOptimized"] |
---|
180 | ],[ |
---|
181 | // nls resources |
---|
182 | function(resource, bc){ |
---|
183 | if((/\/nls\//.test(resource.mid) || /\/nls\/.+\.js$/.test(resource.src)) && ((!resource.tag.test || bc.copyTests=="build"))){ |
---|
184 | resource.tag.nls = 1; |
---|
185 | bc.amdResources[resource.mid] = resource; |
---|
186 | return true; |
---|
187 | } |
---|
188 | return false; |
---|
189 | }, |
---|
190 | ["read", "dojoPragmas", "hasFindAll", "hasFixup", "depsScan", "writeAmd", "writeOptimized"] |
---|
191 | ],[ |
---|
192 | // synthetic AMD modules (used to create layers on-the-fly |
---|
193 | function(resource, bc){ |
---|
194 | if(resource.tag.synthetic && resource.tag.amd){ |
---|
195 | bc.amdResources[resource.mid] = resource; |
---|
196 | return true; |
---|
197 | } |
---|
198 | return false; |
---|
199 | }, |
---|
200 | // just like regular AMD modules, but without a bunch of unneeded transforms |
---|
201 | ["depsScan", "writeAmd", "writeOptimized"] |
---|
202 | ],[ |
---|
203 | // synthetic dojo/loadInit! resources |
---|
204 | // FIXME: can't this be added to the previous transform? |
---|
205 | function(resource, bc){ |
---|
206 | if(resource.tag.loadInitResource){ |
---|
207 | bc.amdResources[resource.mid] = resource; |
---|
208 | return true; |
---|
209 | } |
---|
210 | return false; |
---|
211 | }, |
---|
212 | // just like regular AMD modules (the next transform job), but without a bunch of unneeded transforms |
---|
213 | ["writeAmd", "writeOptimized"] |
---|
214 | ],[ |
---|
215 | // AMD module: |
---|
216 | // already marked as an amd resource |
---|
217 | // ...or... |
---|
218 | // not dojo/dojo.js (filtered above), not package has module (filtered above), not nls bundle (filtered above), not test or building test, not build control script or profile script but still a Javascript resource... |
---|
219 | function(resource, bc){ |
---|
220 | if(resource.tag.amd || (/\.js$/.test(resource.src) && (!resource.tag.test || bc.copyTests=="build") && !/\.(bcs|profile)\.js$/.test(resource.src))){ |
---|
221 | bc.amdResources[resource.mid] = resource; |
---|
222 | return true; |
---|
223 | } |
---|
224 | return false; |
---|
225 | }, |
---|
226 | ["read", "dojoPragmas", "hasFindAll", "insertSymbols", "hasFixup", "depsScan", "writeAmd", "writeOptimized"] |
---|
227 | ],[ |
---|
228 | // Declarative Resource: |
---|
229 | // This resource (usually HTML) should be scanned for declarative dependencies and copied. |
---|
230 | function(resource, bc){ |
---|
231 | return resource.tag.declarative; |
---|
232 | }, |
---|
233 | ["read", "dojoPragmas", "depsDeclarative", "write"] |
---|
234 | ],[ |
---|
235 | // a test resource; if !bc.copyTests then the resource was filtered in the first item; otherwise, if the resource is a potential module and building tests, then it was filtered above; |
---|
236 | function(resource, bc){ |
---|
237 | return resource.tag.test; |
---|
238 | }, |
---|
239 | ["read", "dojoPragmas", "write"] |
---|
240 | ],[ |
---|
241 | // html file; may need access contents for template interning and/or dojoPragmas; therefore, can't use copy transform |
---|
242 | function(resource, bc){ |
---|
243 | return /\.(html|htm)$/.test(resource.src); |
---|
244 | }, |
---|
245 | ["read", "dojoPragmas", "write"] |
---|
246 | ],[ |
---|
247 | // css that are designated to compact |
---|
248 | function(resource, bc){ |
---|
249 | return /\.css$/.test(resource.src); |
---|
250 | }, |
---|
251 | ["read", "optimizeCss", "write"] |
---|
252 | ],[ |
---|
253 | // just copy everything else except tests which were copied above iff desired... |
---|
254 | function(resource, bc){ |
---|
255 | return !resource.tag.test; |
---|
256 | }, |
---|
257 | ["copy"] |
---|
258 | ] |
---|
259 | ] |
---|
260 | }; |
---|
261 | for(var p in defaultBc){ |
---|
262 | bc[p] = defaultBc[p]; |
---|
263 | } |
---|
264 | return bc; |
---|
265 | }); |
---|