Modules
- Cachemon
Classes
- CacheMonClient ⇐
EventEmitter
Constants
- exports.initialize ⇒
Promise.<any>
⏏ - exports.resource ⇒
CacheMonClient
⏏ - exports.hasKey ⇒ ⏏
- exports.cacheMiddleware ⇒
function
⏏ - exports.getResource ⇒
*
⏏
Functions
- generateHash(str) ⇒
*
|PromiseLike.<ArrayBuffer>
⏏ - setData(key, value) ⇒
Promise.<any>
Set some data in the resource. The key will be prefixed with the resource name specified earlier
- getData(key) ⇒
Promise.<any>
Get some data from the resource. The key will be prefixed with the resource name specified earlier
- setResourcePool(resourcePoolData) ⇒
Promise.<any>
Sets the data in the resource pool
- getResourcePool() ⇒
Promise.<any>
Get the data from the resource pool
- appendToResourcePool(appendData) ⇒
Promise.<any>
- updateResourcePool(updateData, preventEmit) ⇒
Promise.<any>
- runCronJob()
- saveMeta(key, value) ⇒
Promise.<any>
Set the meta info in the cache
- getMeta() ⇒
Promise.<any>
Get the meta info saved in the cache
- invalidateResourcePool() ⇒
Promise.<any>
- runUdaterFunction()
Manually run the updater function
Cachemon
- Cachemon
- exports.initialize ⇒
Promise.<any>
⏏ - exports.resource ⇒
CacheMonClient
⏏ - exports.hasKey ⇒ ⏏
- exports.cacheMiddleware ⇒
function
⏏ - exports.getResource ⇒
\*
⏏ - generateHash(str) ⇒
\*
|PromiseLike.<ArrayBuffer>
⏏
- exports.initialize ⇒
exports.initialize ⇒ Promise.<any>
⏏
Kind: global constant of Cachemon
Param |
---|
config |
exports.resource ⇒ CacheMonClient
⏏
Kind: global constant of Cachemon
Param |
---|
clientConfig |
Example
const cnrCache = new CacheMonClient({
name: 'DATA',
executeCronJob: false,
cronPeriod: '0 * * * * *',
cronExecutorFn: (done) => {
i++;
console.log('Running');
request({
url: 'https://api.github.com/users/rajatady/repos?per_page=10',
headers: {
'User-Agent': 'request'
}
}, (err, response, body) => {
if (err) {
done();
} else {
cnrCache.updateResourcePool(body)
.then(res => {
console.log('Done');
})
.catch(err => {
console.log(err);
})
}
});
},
requestMethod: 'GET',
urlDomain: '/data'
});
cnrCache.on('updated', (data) => {
console.log('Updated');
});
export default resource(cnrCache);
exports.hasKey ⇒ ⏏
Kind: global constant of Cachemon
Returns: Promise
Param | Type |
---|---|
url | |
cacheModel | CacheMonClient |
exports.cacheMiddleware ⇒ function
⏏
Kind: global constant of Cachemon
Param | Type |
---|---|
cacheModel | CacheMonClient |
exports.getResource ⇒ \*
⏏
Kind: global constant of Cachemon
Param |
---|
resourceName |
generateHash(str) ⇒ \*
| PromiseLike.<ArrayBuffer>
⏏
Kind: global method of Cachemon
Param |
---|
str |
CacheMonClient ⇐ EventEmitter
Kind: global class
Extends: EventEmitter
new CacheMonClient(options)
Param | Type | Default | Description |
---|---|---|---|
options | Object |
The options for the Cachemon Client | |
options.name | String |
The name of the client for which resources have to be scoped | |
[options.allowFiltering] | String |
Whether the domain should allow data filtering (Planned) | |
[options.urlDomain] | String |
The url domain registered with express. To be used for advanced caching (Planned) | |
[options.requestMethod] | String |
GET |
The HTTP request method for the url domain (Planned) |
[options.cronPeriod] | String |
The cron period in a standard glob format. Refer to https://www.npmjs.com/package/node-cron for more | |
[options.purgeCronPeriod] | String |
The cron period for the purge function in a standard glob format. Refer to https://www.npmjs.com/package/node-cron for more | |
[options.executeCronJob] | Boolean |
Should the cron function be executed | |
[options.cronExecutorFn] | function |
The function to be executed whenever the cron job runs | |
[options.updaterFn] | function |
The function to be executed whenever request is served from cache | |
[options.purgeFn] | function |
The function to be executed whenever cron time for purge is reached | |
[options.shouldRunUpdater] | Boolean |
false |
Should the updater function run |
[options.shouldRunPurge] | Boolean |
false |
Should the purge function run |
[options.maintainUrls] | Boolean |
false |
Should a new data pool be created based on request url |
[options.preSendCallback] | function |
The function which gets the control once the data from cache is evaluated and is ready to be sent |
setData(key, value) ⇒ Promise.<any>
Set some data in the resource. The key will be prefixed with the resource name specified earlier
Kind: global function
Param | Type | Description |
---|---|---|
key | String |
The key to be put in the cache |
value | String |
The data to be saved |
getData(key) ⇒ Promise.<any>
Get some data from the resource. The key will be prefixed with the resource name specified earlier
Kind: global function
Param | Type | Description |
---|---|---|
key | String |
The key to fetch from the cache |
setResourcePool(resourcePoolData) ⇒ Promise.<any>
Sets the data in the resource pool
Kind: global function
Param | Type | Description |
---|---|---|
resourcePoolData | String |
Set the data in the resource pool |
getResourcePool() ⇒ Promise.<any>
Get the data from the resource pool
appendToResourcePool(appendData) ⇒ Promise.<any>
Kind: global function
Param |
---|
appendData |
updateResourcePool(updateData, preventEmit) ⇒ Promise.<any>
Kind: global function
Param | Type |
---|---|
updateData | |
preventEmit | Boolean |
runCronJob()
saveMeta(key, value) ⇒ Promise.<any>
Set the meta info in the cache
Kind: global function
Param |
---|
key |
value |
getMeta() ⇒ Promise.<any>
Get the meta info saved in the cache
invalidateResourcePool() ⇒ Promise.<any>
runUdaterFunction()
Manually run the updater function
Kind: global function