@@ -73,60 +73,63 @@ cwc.Cache.prototype.prepare = async function() {
73
73
/**
74
74
* @param {!string|number } version
75
75
*/
76
- cwc . Cache . prototype . update = function ( version ) {
76
+ cwc . Cache . prototype . update = async function ( version ) {
77
77
if ( version && this . version <= version ) {
78
78
this . log_ . info ( 'No updates needed' , version , '>=' , this . version ) ;
79
79
return ;
80
80
}
81
81
82
82
this . log_ . info ( 'Updating Cache to version' , this . version ) ;
83
- this . database_ . clear ( ) ;
83
+ await this . database_ . clear ( ) ;
84
84
85
85
this . log_ . info ( 'Loading external frameworks ...' ) ;
86
- this . loadFiles ( cwc . framework . External ) ;
86
+ await this . loadFiles ( cwc . framework . External ) ;
87
87
88
88
this . log_ . info ( 'Loading internal frameworks ...' ) ;
89
- this . loadFiles ( cwc . framework . Internal ) ;
89
+ await this . loadFiles ( cwc . framework . Internal ) ;
90
90
91
91
this . log_ . info ( 'Loading Style Sheets ...' ) ;
92
- this . loadFiles ( cwc . framework . StyleSheet ) ;
92
+ await this . loadFiles ( cwc . framework . StyleSheet ) ;
93
93
94
- this . database_ . add ( '__version__' , this . version ) ;
94
+ await this . database_ . add ( '__version__' , this . version ) ;
95
95
} ;
96
96
97
97
98
98
/**
99
99
* Loads files into cache.
100
100
* @param {!Object } files
101
101
*/
102
- cwc . Cache . prototype . loadFiles = function ( files ) {
102
+ cwc . Cache . prototype . loadFiles = async function ( files ) {
103
+ let promises = [ ] ;
103
104
for ( let file of Object . keys ( files ) ) {
104
105
if ( goog . isString ( files [ file ] ) ) {
105
- cwc . utils . Resources . getUriAsText ( '..' + files [ file ] ) . then ( ( content ) => {
106
- this . addFile ( files [ file ] , content ) ;
107
- } ) ;
106
+ promises . push ( cwc . utils . Resources . getUriAsText ( '..' + files [ file ] )
107
+ . then ( ( content ) => {
108
+ return this . addFile ( files [ file ] , content ) ;
109
+ } ) ) ;
108
110
} else {
109
111
for ( let subFile of Object . keys ( files [ file ] ) ) {
110
- cwc . utils . Resources . getUriAsText ( '..' + files [ file ] [ subFile ] ) . then (
111
- ( content ) => {
112
- this . addFile ( files [ file ] [ subFile ] , content ) ;
113
- } ) ;
112
+ promises . push ( cwc . utils . Resources . getUriAsText ( '..' +
113
+ files [ file ] [ subFile ] ) . then ( ( content ) => {
114
+ return this . addFile ( files [ file ] [ subFile ] , content ) ;
115
+ } ) ) ;
114
116
}
115
117
}
116
118
}
119
+ await Promise . all ( promises ) ;
117
120
} ;
118
121
119
122
120
123
/**
121
124
* @param {string! } name
122
125
* @param {string! } content
123
126
*/
124
- cwc . Cache . prototype . addFile = function ( name , content ) {
127
+ cwc . Cache . prototype . addFile = async function ( name , content ) {
125
128
if ( ! content ) {
126
129
this . log_ . error ( 'Received empty content for' , name ) ;
127
130
return ;
128
131
}
129
- this . database_ . add ( name , content ) ;
132
+ await this . database_ . add ( name , content ) ;
130
133
} ;
131
134
132
135
0 commit comments