@peerbit/cache 1.1.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/esm/index.js CHANGED
@@ -34,19 +34,21 @@ export class Cache {
34
34
  return this._map.get(key)?.value;
35
35
  }
36
36
  trim(time = +new Date()) {
37
- const peek = this.list.head;
38
- let outOfDate = peek &&
39
- this.ttl !== undefined &&
40
- this._map.get(peek.value).time < time - this.ttl;
41
- while (outOfDate || this.currentSize > this.max) {
42
- const key = this.list.shift();
43
- if (key !== undefined) {
44
- const cacheValue = this._map.get(key);
45
- outOfDate = this.ttl !== undefined && cacheValue.time < time - this.ttl;
46
- this._map.delete(key);
47
- const wasDeleted = this.deleted.delete(key);
48
- if (!wasDeleted) {
49
- this.currentSize -= cacheValue.size;
37
+ for (;;) {
38
+ const headKey = this.list.head;
39
+ if (headKey?.value !== undefined) {
40
+ const cacheValue = this._map.get(headKey.value);
41
+ const outOfDate = this.ttl !== undefined && cacheValue.time < time - this.ttl;
42
+ if (outOfDate || this.currentSize > this.max) {
43
+ this.list.shift();
44
+ this._map.delete(headKey.value);
45
+ const wasDeleted = this.deleted.delete(headKey.value);
46
+ if (!wasDeleted) {
47
+ this.currentSize -= cacheValue.size;
48
+ }
49
+ }
50
+ else {
51
+ break;
50
52
  }
51
53
  }
52
54
  else {
@@ -54,29 +56,6 @@ export class Cache {
54
56
  }
55
57
  }
56
58
  }
57
- /*
58
-
59
- trim(time = +new Date()) {
60
- const peek = this.list.head;
61
- let outOfDate =
62
- peek &&
63
- this.ttl !== undefined &&
64
- this._map.get(peek.value)!.time < time - this.ttl;
65
- while (outOfDate || this.currentSize > this.max) {
66
- const key = this.list.shift();
67
- if (key !== undefined) {
68
- const cacheValue = this.del(key);
69
- if (cacheValue) {
70
- outOfDate = this.ttl !== undefined && cacheValue.time < time - this.ttl;
71
- this._map.delete(key);
72
- }
73
-
74
- } else {
75
- break;
76
- }
77
- }
78
- }
79
- */
80
59
  del(key) {
81
60
  const cacheValue = this._map.get(key);
82
61
  if (cacheValue && !this.deleted.has(key)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/cache",
3
- "version": "1.1.1",
3
+ "version": "2.0.1",
4
4
  "description": "Simple cache",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "license": "MIT",
36
36
  "devDependencies": {
37
- "@peerbit/time": "1.0.4",
37
+ "@peerbit/time": "2.0.1",
38
38
  "@types/yallist": "^4.0.1"
39
39
  },
40
40
  "dependencies": {
@@ -43,5 +43,5 @@
43
43
  "localMaintainers": [
44
44
  "dao.xyz"
45
45
  ],
46
- "gitHead": "6263a10a6236346d1c45d02dc0bf18eed1dc2995"
46
+ "gitHead": "f4cb6a526d26e98360c32fd28dcdf9eb7ea10551"
47
47
  }
package/src/index.ts CHANGED
@@ -40,49 +40,27 @@ export class Cache<T = undefined> {
40
40
  }
41
41
 
42
42
  trim(time = +new Date()) {
43
- const peek = this.list.head;
44
- let outOfDate =
45
- peek &&
46
- this.ttl !== undefined &&
47
- this._map.get(peek.value)!.time < time - this.ttl;
48
- while (outOfDate || this.currentSize > this.max) {
49
- const key = this.list.shift();
50
- if (key !== undefined) {
51
- const cacheValue = this._map.get(key)!;
52
- outOfDate = this.ttl !== undefined && cacheValue.time < time - this.ttl;
53
- this._map.delete(key);
54
- const wasDeleted = this.deleted.delete(key);
55
- if (!wasDeleted) {
56
- this.currentSize -= cacheValue.size;
43
+ for (;;) {
44
+ const headKey = this.list.head;
45
+ if (headKey?.value !== undefined) {
46
+ const cacheValue = this._map.get(headKey.value)!;
47
+ const outOfDate =
48
+ this.ttl !== undefined && cacheValue.time < time - this.ttl;
49
+ if (outOfDate || this.currentSize > this.max) {
50
+ this.list.shift();
51
+ this._map.delete(headKey.value);
52
+ const wasDeleted = this.deleted.delete(headKey.value);
53
+ if (!wasDeleted) {
54
+ this.currentSize -= cacheValue.size;
55
+ }
56
+ } else {
57
+ break;
57
58
  }
58
59
  } else {
59
60
  break;
60
61
  }
61
62
  }
62
63
  }
63
- /*
64
-
65
- trim(time = +new Date()) {
66
- const peek = this.list.head;
67
- let outOfDate =
68
- peek &&
69
- this.ttl !== undefined &&
70
- this._map.get(peek.value)!.time < time - this.ttl;
71
- while (outOfDate || this.currentSize > this.max) {
72
- const key = this.list.shift();
73
- if (key !== undefined) {
74
- const cacheValue = this.del(key);
75
- if (cacheValue) {
76
- outOfDate = this.ttl !== undefined && cacheValue.time < time - this.ttl;
77
- this._map.delete(key);
78
- }
79
-
80
- } else {
81
- break;
82
- }
83
- }
84
- }
85
- */
86
64
 
87
65
  del(key: string) {
88
66
  const cacheValue = this._map.get(key)!;