@@ -45,35 +45,11 @@ Cache.prototype.set = function(key, value, options){
45
45
data [ key ] = value ;
46
46
store . call ( this , data ) ;
47
47
48
- if ( options ) {
48
+ if ( hasExpiration ( options ) ) {
49
49
setExpiration . call ( this , key , options ) ;
50
50
}
51
51
}
52
52
53
- Cache . prototype . fetch = function ( key , options ) {
54
- validateKey ( key ) ;
55
- validateOption ( options , 'get' , 'fetch' ) ;
56
- validateOption ( options , 'done' , 'fetch' ) ;
57
-
58
- var self = this ;
59
- var value = self . get ( key ) ;
60
-
61
- if ( value ) {
62
- options . done ( value ) ;
63
- return ;
64
- }
65
-
66
- options . done . __freshFetch = true ;
67
- options . get ( function ( value ) {
68
- if ( options . done . __freshFetch ) {
69
- delete options . done . __freshFetch ;
70
- self . set ( key , value , options ) ;
71
- }
72
-
73
- done ( value ) ;
74
- } ) ;
75
- }
76
-
77
53
function load ( ) {
78
54
var stringifiedData = this . storage [ this . options . namespace ] ;
79
55
if ( stringifiedData === undefined ) {
@@ -87,18 +63,6 @@ function store(data){
87
63
this . storage [ this . options . namespace ] = stringifiedData ;
88
64
}
89
65
90
- function validateKey ( key ) {
91
- if ( ! key ) {
92
- throw 'key is required!' ;
93
- }
94
- }
95
-
96
- function validateOption ( options , key , functionName ) {
97
- if ( ! options [ key ] || typeof options [ key ] !== 'function' ) {
98
- throw 'Cache.' + functionName + '() requires you pass in a "' + key + '" callback option' ;
99
- }
100
- }
101
-
102
66
function setExpiration ( key , options ) {
103
67
var expirationMilli = getExpirationMilliSeconds ( options ) ;
104
68
var date = new Date ( ) ;
@@ -164,4 +128,8 @@ function number(num){
164
128
}
165
129
}
166
130
131
+ function hasExpiration ( options ) {
132
+ return typeof options == 'number' || ( typeof options == 'string' && parseInt ( options ) != NaN ) || ( typeof options == 'object' && options . expiresIn )
133
+ }
134
+
167
135
module . exports = Cache ;
0 commit comments