Skip to content
This repository has been archived by the owner on Jul 9, 2018. It is now read-only.
/ cache Public archive

Caching functionality with decorators for declarative use.

Notifications You must be signed in to change notification settings

travetto/cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

travetto: Cache

Provides a simple wrapper around lru-cache to provide standard caching constructs.

@Cacheable is a decorator that allows caching at class methods. The decorator will rewrite the method to cache on successful results. The decorator supports synchronous as well as asynchronous methods.

  class Worker {
    
    @Cacheable({ max: 1000 })
    async calculateExpensiveResult(expression: string) {
      const value = await request(`https://google.com?q=${expression}`);
      return value;
    }
  }

The @Cacheable decorator supports certain configurations:

  • name the name of the cache space
  • dispose the function to invoke on cache eviction
  • keyFn the function used to determine the cache key, defaults to all params serialized to a string
  • max the maximum number of elements that the cache will hold before eviction
  • maxAge the longest time an element is allowed to live before eviction. Defaults to infinite.

About

Caching functionality with decorators for declarative use.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published