@@ -31,8 +31,8 @@ module.exports = CoreObject.extend({
31
31
32
32
this . _client = new RedisLib ( redisOptions ) ;
33
33
34
- this . _maxRecentUploads = options . maxRecentUploads ;
35
- this . _allowOverwrite = options . allowOverwrite ;
34
+ this . _maxRecentUploads = options . maxRecentUploads || 10 ;
35
+ this . _allowOverwrite = options . allowOverwrite || false ;
36
36
this . _activationSuffix = options . activationSuffix || 'current' ;
37
37
} ,
38
38
@@ -63,24 +63,22 @@ module.exports = CoreObject.extend({
63
63
64
64
async fetchRevisions ( keyPrefix ) {
65
65
let revisions = await this . _listRevisions ( keyPrefix ) ;
66
- let results = await RSVP . hash ( {
67
- current : this . activeRevision ( keyPrefix ) ,
68
- revisionData : this . _revisionData ( keyPrefix , revisions )
69
- } ) ;
66
+ let current = await this . activeRevision ( keyPrefix ) ;
67
+ let revisionData = await this . _revisionData ( keyPrefix , revisions ) ;
70
68
return revisions . map ( function ( revision , i ) {
71
69
let hash = {
72
70
revision : revision ,
73
- active : revision === results . current ,
71
+ active : revision === current ,
74
72
} ;
75
- if ( results . revisionData ) {
76
- hash . revisionData = results . revisionData [ i ] ;
73
+ if ( revisionData ) {
74
+ hash . revisionData = revisionData [ i ] ;
77
75
}
78
76
return hash ;
79
77
} ) ;
80
78
} ,
81
79
82
80
activeRevision ( keyPrefix ) {
83
- var currentKey = keyPrefix + ':' + this . _activationSuffix ;
81
+ let currentKey = keyPrefix + ':' + this . _activationSuffix ;
84
82
return this . _client . get ( currentKey ) ;
85
83
} ,
86
84
@@ -90,7 +88,7 @@ module.exports = CoreObject.extend({
90
88
}
91
89
let dataKeys = revisions . map ( ( rev ) => `${ keyPrefix } :revision-data:${ rev } ` ) ;
92
90
93
- let data = this . _client . mget ( dataKeys ) ;
91
+ let data = await this . _client . mget ( dataKeys ) ;
94
92
if ( ! data ) {
95
93
return ;
96
94
}
@@ -161,17 +159,17 @@ module.exports = CoreObject.extend({
161
159
let client = this . _client ;
162
160
let listKey = `${ keyPrefix } :revisions` ;
163
161
164
- let results = await RSVP . hash ( {
165
- revisionsToBeRemoved : client . zrange ( listKey , 0 , - ( maxEntries + 1 ) ) ,
166
- current : this . activeRevision ( keyPrefix )
167
- } ) ;
168
- let revisions = results . revisionsToBeRemoved ;
169
- let current = results . current ;
170
- if ( ! revisions ) {
162
+ let revisionCount = await client . zcard ( listKey ) ;
163
+ let revisionsToBeRemoved ;
164
+ if ( revisionCount > maxEntries ) {
165
+ revisionsToBeRemoved = await client . zrange ( listKey , 0 , revisionCount - maxEntries - 1 ) ;
166
+ }
167
+ if ( ! revisionsToBeRemoved ) {
171
168
return ;
172
169
}
170
+ let current = await this . activeRevision ( keyPrefix ) ;
173
171
let promises = [ ] ;
174
- revisions . forEach ( function ( revision ) {
172
+ revisionsToBeRemoved . forEach ( function ( revision ) {
175
173
if ( revision !== current ) {
176
174
promises . push ( client . del ( `${ keyPrefix } :${ revision } ` ) ) ;
177
175
promises . push ( client . del ( `${ keyPrefix } :revision-data:${ revision } ` ) ) ;
0 commit comments