@@ -10,26 +10,23 @@ export function createCacheDecorator<T extends Function>(type: CacheType, target
1010
1111 const provider : BaseCacheProvider = getMethodCacheProvider ( type ) ;
1212
13- let container : CacheContainerOptions ;
13+ let cacheObject : BaseCacheObject = provider . getCacheObject ( options . key ! ) || provider . createCacheObject ( options ) ;
14+
15+ let container : CacheContainerOptions | undefined | null = null ;
1416
1517 return < any > function ( ...args : any [ ] ) : any {
1618
1719 const argsString : string = JSON . stringify ( args ) || 'void' ;
1820
19- let cacheObject : BaseCacheObject = provider . getCacheObject ( options . key ! ) ;
20-
21- if ( ! cacheObject ) {
22- container = container || getCacheContainer ( target . constructor ) ;
23- cacheObject = provider . createCacheObject ( options ) ;
21+ if ( container === null ) {
22+ container = getCacheContainer ( target . constructor ) ;
2423 if ( container ) {
2524 provider . addToContainer ( container , cacheObject ) ;
2625 }
27- } else if ( cacheObject . isExpired ( argsString ) ) {
28- provider . clearCacheArgs ( cacheObject , argsString ) ;
2926 }
3027
31- if ( ! cacheObject . hasCache ( argsString ) ) {
32- provider . setCache ( options , argsString , method . call ( this , args ) ) ;
28+ if ( ! cacheObject . hasCache ( argsString ) || cacheObject . isExpired ( argsString ) ) {
29+ provider . setCache ( options , argsString , method . call ( this , ... args ) ) ;
3330 }
3431
3532 return cacheObject . getCache ( argsString ) ;
0 commit comments