Cache
The cache system is built on LocaleStorage API.
Installation
flk install flk-cache
OR
npm install flk-cache
Alias: cache
.
Table of contents
Usage
Once you resolve the cache object you can use the methods below.
class HomePage {
constructor(cache) {
this.cache = cache;
}
}
Available methods
Set
set(key: String, value: any, expiresAt: Number = Cache.FOREVER): Self
This method accepts any type of values, the cache engine will handle it automatically, so if you want to store object, you don't have to JSON.stringify
it, the package will take care of it.
The expiresAt
parameter is used to determine until when the value should be stored in.
Please note that this method accepts a valid timestamp number, i.e Date.now()
.
The default value for expiresAt
is set to Cache.FOREVER which mean the value will not be removed from the cache until the user clears the browser history.
There are some useful constants for cache expiration time.
Examples
let cache = DI.resolve('cache');
cache.set('name', 'Hasan');
let user = {
name: 'Hasan',
address: 'Some street address',
};
cache.set('user', user);
let users = [{
name: 'Hasan',
address: 'Some street address',
}, {
name: 'John Doe',
address: 'Another address',
}];
cache.set('users', users);
cache.set('accessToken', MyAccessToken, Cache.FOR_ONE_HOUR);11
Get
get(key: String, defaultValue: any = null): any|null
Retrieve value from cache.
If the key doesn't exist, defaultValue
will be returned instead.
Examples
let cache = DI.resolve('cache');
let name = cache.get('name');
let age = cache.get('age');
let email = cache.get('email', 'my-email@sitename.com');
Has
has(key: String): Boolean
Determine if the given key exists in cache.
Examples
let cache = DI.resolve('cache');
if (cache.has('name')) {
}
Remove
remove(key: String): void
Remove the given key if exists in cache storage.
Examples
let cache = DI.resolve('cache');
cache.remove('name');
Clear
clear(): void
Clear all cache values.
Examples
let cache = DI.resolve('cache');
cache.clear();
Configurations
Available configurations for cache
in Application configurations.
Main Configuration key: cache
key | Type | Default value | Description |
---|
encryptValues | Boolean | true | If set to true , any value will be encrypted using the Crypto package. |
It's recommended to set the type of the encryptionValue in your config.js
in the beginning of your application development as it works on all the cached values.
Constants
constant | Description |
---|
Cache.FOR_ONE_HOUR | Cache the value for one hour. |
Cache.FOR_TWO_HOURS | Cache the value for two hours. |
Cache.FOR_ONE_DAY | Cache the value for one day. |
Cache.FOR_ONE_WEEK | Cache the value for one week. |
Cache.FOR_ONE_MONTH | Cache the value for one month. |
Cache.FOR_ONE_YEAR | Cache the value for one year. |
Cache.FOREVER | Cache the value until the visitor clears the browser history. |