Skip to content

Commit 302adf1

Browse files
committed
v2.1.0 - Added dispose function to clear running cleanup interval if defined and clear cache instances
1 parent 92d742e commit 302adf1

File tree

5 files changed

+780
-6
lines changed

5 files changed

+780
-6
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,15 @@ Gets an array of stats across all active cachers.
190190
]
191191
```
192192

193+
## dispose
194+
195+
```js
196+
require('cache-memory').dispose();
197+
```
198+
199+
Clears all in memory cacher instances and also clears the cleanup task if defined using the `cleanup` function.
200+
201+
193202
## Cache - created cache-memory instance
194203

195204
It's functions are defined below.

index.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ function getCachers() {
1414
return cachers;
1515
}
1616

17+
function clearCachers() {
18+
getCachers().forEach((cacher) => {
19+
cacher.clear();
20+
logger.log(`cleared cacher - id: ${cacher.id}`);
21+
});
22+
}
23+
1724
var cacherWrapper = {
1825
create: (options) => {
1926
options = options || {};
@@ -36,10 +43,7 @@ var cacherWrapper = {
3643
return cacher;
3744
},
3845
clear: () => {
39-
getCachers().forEach((cacher) => {
40-
cacher.clear();
41-
logger.log(`cleared cacher - id: ${cacher.id}`);
42-
});
46+
clearCachers();
4347
return cacherWrapper;
4448
},
4549
stats: () => {
@@ -111,6 +115,18 @@ var cacherWrapper = {
111115
logger.log(`cleaning up expired keys complete - ${count} keys`);
112116
}, seconds * 1000);
113117
return cacherWrapper;
118+
},
119+
dispose: () => {
120+
if (intervalId) {
121+
clearInterval(intervalId);
122+
intervalId = undefined;
123+
}
124+
125+
clearCachers();
126+
cachers = [];
127+
},
128+
getCleanupIntervalId: () => {
129+
return intervalId;
114130
}
115131
};
116132

0 commit comments

Comments
 (0)