Cache
Caching abstraction that stores data on disk and supports LRU (least recently used) access. Since extensions can only consume up to a max. heap memory size, the cache only maintains a lightweight index in memory and stores the actual data in separate files on disk in the extension's support directory.
API Reference
Cache
The Cache
class provides CRUD-style methods (get, set, remove) to update and retrieve data synchronously based on a key. The data must be a string and it is up to the client to decide which serialization format to use. A typical use case would be to use JSON.stringify
and JSON.parse
.
By default, the cache is shared between the commands of an extension. Use Cache.Options to configure a namespace
per command if needed (for example, set it to environment.commandName
).
Signature
Example
Properties
Property | Description | Type |
---|---|---|
isEmpty* | Returns |
|
Methods
Method |
---|
Cache#get
Returns the data for the given key. If there is no data for the key, undefined
is returned. If you want to just check for the existence of a key, use has.
Signature
Parameters
Name | Description | Type |
---|---|---|
key* | The key of the Cache entry. |
|
Cache#has
Returns true
if data for the key exists, false
otherwise. You can use this method to check for entries without affecting the LRU access.
Signature
Parameters
Name | Description | Type |
---|---|---|
key* | The key of the Cache entry. |
|
Cache#set
Sets the data for the given key. If the data exceeds the configured capacity
, the least recently used entries are removed. This also notifies registered subscribers (see subscribe).
Signature
Parameters
Name | Description | Type |
---|---|---|
key* | The key of the Cache entry. |
|
data* | The stringified data of the Cache entry. |
|
Cache#remove
Removes the data for the given key. This also notifies registered subscribers (see subscribe). Returns true
if data for the key was removed, false
otherwise.
Signature
Cache#clear
Clears all stored data. This also notifies registered subscribers (see subscribe) unless the notifySubscribers
option is set to false
.
Signature
Parameters
Name | Description | Type |
---|---|---|
options | Options with a |
|
Cache#subscribe
Registers a new subscriber that gets notified when cache data is set or removed. Returns a function that can be called to remove the subscriber.
Signature
Parameters
Name | Description | Type |
---|---|---|
subscriber | A function that is called when the Cache is updated. The function receives two values: the |
Types
Cache.Options
The options for creating a new Cache.
Properties
Property | Description | Type |
---|---|---|
capacity | The capacity in bytes. If the stored data exceeds the capacity, the least recently used data is removed. The default capacity is 10 MB. |
|
namespace | If set, the Cache will be namespaced via a subdirectory. This can be useful to separate the caches for individual commands of an extension. By default, the cache is shared between the commands of an extension. |
|
Cache.Subscriber
Function type used as parameter for subscribe.
Cache.Subscription
Function type returned from subscribe.
Last updated