@@ -53,10 +53,10 @@ cwc.renderer.Renderer = function(helper) {
53
53
this . frameworkFiles = new cwc . file . Files ( ) ;
54
54
55
55
/** @type {!cwc.file.Files } */
56
- this . libraryFiles = new cwc . file . Files ( ) ;
56
+ this . styleSheetFiles = new cwc . file . Files ( ) ;
57
57
58
58
/** @type {!cwc.file.Files } */
59
- this . styleSheetFiles = new cwc . file . Files ( ) ;
59
+ this . files = new cwc . file . Files ( ) ;
60
60
61
61
/** @type {!boolean } */
62
62
this . serverMode_ = false ;
@@ -77,8 +77,8 @@ cwc.renderer.Renderer = function(helper) {
77
77
*/
78
78
cwc . renderer . Renderer . prototype . prepare = function ( ) {
79
79
return this . cache_ . open ( ) . then ( ( ) => {
80
- this . cache_ . getFile ( '__version__' ) . then ( ( result ) => {
81
- this . updateCache ( result ) ;
80
+ this . cache_ . getFile ( '__version__' ) . then ( ( version ) => {
81
+ this . updateCache ( version ) ;
82
82
} ) ;
83
83
} ) ;
84
84
} ;
@@ -94,10 +94,10 @@ cwc.renderer.Renderer.prototype.updateCache = function(version) {
94
94
this . log_ . info ( 'Updating Cache to version' , this . version_ ) ;
95
95
96
96
this . log_ . info ( 'Loading external frameworks ...' ) ;
97
- this . loadFrameworks ( cwc . framework . External ) ;
97
+ this . loadFiles ( cwc . framework . External ) ;
98
98
99
99
this . log_ . info ( 'Loading internal frameworks ...' ) ;
100
- this . loadFrameworks ( cwc . framework . Internal ) ;
100
+ this . loadFiles ( cwc . framework . Internal ) ;
101
101
102
102
this . log_ . info ( 'Loading Style Sheets ...' ) ;
103
103
this . loadStyleSheets ( cwc . framework . StyleSheet ) ;
@@ -119,9 +119,9 @@ cwc.renderer.Renderer.prototype.test = function() {
119
119
120
120
/**
121
121
* Loads frameworks into cache.
122
- * @param {!Object } frameworks Framework files.
122
+ * @param {!Object } frameworks
123
123
*/
124
- cwc . renderer . Renderer . prototype . loadFrameworks = function ( frameworks ) {
124
+ cwc . renderer . Renderer . prototype . loadFiles = function ( frameworks ) {
125
125
let frameworkFiles = [ ] ;
126
126
for ( let framework of Object . keys ( frameworks ) ) {
127
127
if ( goog . isString ( frameworks [ framework ] ) ) {
@@ -134,7 +134,7 @@ cwc.renderer.Renderer.prototype.loadFrameworks = function(frameworks) {
134
134
}
135
135
frameworkFiles . forEach ( ( frameworkFile ) => {
136
136
cwc . utils . Resources . getUriAsText ( '../' + frameworkFile ) . then ( ( content ) => {
137
- this . addFramework ( frameworkFile , content ) ;
137
+ this . addFile ( frameworkFile , content , 'text/javascript' ) ;
138
138
} ) ;
139
139
} ) ;
140
140
} ;
@@ -143,29 +143,31 @@ cwc.renderer.Renderer.prototype.loadFrameworks = function(frameworks) {
143
143
/**
144
144
* @param {string! } name
145
145
* @param {string! } content
146
+ * @param {string= } type
147
+ * @param {boolean= } optimize
146
148
*/
147
- cwc . renderer . Renderer . prototype . addFramework = function ( name , content ) {
149
+ cwc . renderer . Renderer . prototype . addFile = function ( name , content ,
150
+ type = 'text/javascript' , optimize = false ) {
148
151
if ( ! content ) {
149
- this . log_ . error ( 'Received empty content for framework ' , name ) ;
152
+ this . log_ . error ( 'Received empty content for' , name ) ;
150
153
return ;
151
154
}
152
155
153
- // Add framework file to server instance if available.
156
+ // Add file to server instance if available.
154
157
let serverInstance = this . helper . getInstance ( 'server' ) ;
155
158
if ( serverInstance ) {
156
159
serverInstance . addFile ( name , content ) ;
157
160
}
158
161
159
- if ( ! name . includes ( '.min.' ) && content . length > 1000 ) {
162
+ if ( optimize && ! name . includes ( '.min.' ) && content . length > 1000 ) {
160
163
// Try to optimize unminimized code by removing comments and white-spaces.
161
164
let originalContentLength = content . length ;
162
165
content = content . replace ( / \\ n \\ n / g, '\\n' )
163
166
. replace ( / { 4 } / g, ' ' )
164
167
. replace ( / [ \t ] ? \/ \/ .+ ?\\ n / g, '' )
165
168
. replace ( / [ \t ] ? \/ \* .+ ?\* \/ \\ n / g, '' )
166
169
. replace ( / [ \t ] + \\ n / g, '\\n' )
167
- . replace ( / ( \\ n ) { 2 , } / g, '\\n' )
168
- . replace ( / ; \\ n / g, ';' ) ;
170
+ . replace ( / ( \\ n ) { 2 , } / g, '\\n' ) ;
169
171
if ( originalContentLength > content . length ) {
170
172
let optimized = Math . ceil ( ( ( originalContentLength - content . length ) /
171
173
originalContentLength ) * 100 ) ;
@@ -175,14 +177,15 @@ cwc.renderer.Renderer.prototype.addFramework = function(name, content) {
175
177
}
176
178
}
177
179
}
178
- let fileContent = this . rendererHelper . getDataUrl ( content , 'text/javascript' ) ;
180
+
181
+ let fileContent = this . rendererHelper . getDataUrl ( content , type ) ;
179
182
if ( ! fileContent ) {
180
- this . log_ . error ( 'Received empty file for framework ' , name ) ;
183
+ this . log_ . error ( 'Received empty file for' , name ) ;
181
184
return ;
182
185
}
183
-
184
186
this . cache_ . addFile ( name , fileContent ) ;
185
- let file = this . frameworkFiles . addFile ( name , fileContent ) ;
187
+
188
+ let file = this . files . addFile ( name , fileContent ) ;
186
189
if ( ! file ) {
187
190
this . log_ . error ( 'Was not able to add File' , file ) ;
188
191
} else {
@@ -196,7 +199,7 @@ cwc.renderer.Renderer.prototype.addFramework = function(name, content) {
196
199
* @export
197
200
*/
198
201
cwc . renderer . Renderer . prototype . getFrameworks = function ( ) {
199
- return this . frameworkFiles ;
202
+ return this . files ;
200
203
} ;
201
204
202
205
@@ -217,49 +220,12 @@ cwc.renderer.Renderer.prototype.loadStyleSheets = function(frameworks) {
217
220
}
218
221
frameworkFiles . forEach ( ( frameworkFile ) => {
219
222
cwc . utils . Resources . getUriAsText ( '../' + frameworkFile ) . then ( ( content ) => {
220
- this . addStyleSheet ( frameworkFile , content ) ;
223
+ this . addFile ( frameworkFile , content , 'text/css' ) ;
221
224
} ) ;
222
225
} ) ;
223
226
} ;
224
227
225
228
226
- /**
227
- * @param {string! } name
228
- * @param {string! } content
229
- * @param {string= } type
230
- */
231
- cwc . renderer . Renderer . prototype . addStyleSheet = function ( name , content , type ) {
232
- let fileContent = this . rendererHelper . getDataUrl ( content , 'text/css' ) ;
233
- if ( ! fileContent ) {
234
- this . log_ . error ( 'Received empty content for Style Sheet' , name ) ;
235
- return ;
236
- }
237
-
238
- // Add framework file to server instance if available.
239
- let serverInstance = this . helper . getInstance ( 'server' ) ;
240
- if ( serverInstance ) {
241
- serverInstance . addFile ( name , content ) ;
242
- }
243
-
244
- this . cache_ . addFile ( name , fileContent ) ;
245
- let file = this . styleSheetFiles . addFile ( name , fileContent , type ) ;
246
- if ( ! file ) {
247
- this . log_ . error ( 'Was not able to add File' , file ) ;
248
- } else {
249
- this . log_ . info ( 'Add framework' , name , file . getSize ( ) ) ;
250
- }
251
- } ;
252
-
253
-
254
- /**
255
- * @return {!cwc.file.Files }
256
- * @export
257
- */
258
- cwc . renderer . Renderer . prototype . getStyleSheets = function ( ) {
259
- return this . styleSheetFiles ;
260
- } ;
261
-
262
-
263
229
/**
264
230
* @return {!cwc.renderer.Helper }
265
231
* @export
@@ -292,15 +258,14 @@ cwc.renderer.Renderer.prototype.setServerMode = function(enable) {
292
258
293
259
/**
294
260
* Renders the JavaScript, CSS and HTML content together with all settings.
295
- * @return {string }
261
+ * @return {! string }
296
262
* @export
297
263
*/
298
264
cwc . renderer . Renderer . prototype . getRenderedContent = function ( ) {
299
- let editorInstance = this . helper . getInstance ( 'editor' , true ) ;
300
265
let fileInstance = this . helper . getInstance ( 'file' ) ;
301
- if ( fileInstance ) {
302
- this . libraryFiles = fileInstance . getFiles ( ) ;
303
- }
266
+ let libraryFiles = fileInstance ?
267
+ fileInstance . getFiles ( ) : new cwc . file . Files ( ) ;
268
+ let editorInstance = this . helper . getInstance ( 'editor' ) ;
304
269
let content = editorInstance . getEditorContent ( ) ;
305
270
if ( ! content ) {
306
271
this . log_ . warn ( 'Empty render content!' ) ;
@@ -309,9 +274,9 @@ cwc.renderer.Renderer.prototype.getRenderedContent = function() {
309
274
let html = this . renderer (
310
275
content ,
311
276
editorInstance . getEditorFlags ( ) ,
312
- this . libraryFiles ,
313
- this . frameworkFiles ,
314
- this . styleSheetFiles ,
277
+ libraryFiles ,
278
+ this . files ,
279
+ this . files ,
315
280
this . rendererHelper
316
281
) ;
317
282
@@ -322,7 +287,7 @@ cwc.renderer.Renderer.prototype.getRenderedContent = function() {
322
287
}
323
288
}
324
289
325
- return html ;
290
+ return html || '' ;
326
291
} ;
327
292
328
293
0 commit comments