@extra-memoize/memory-cache 0.3.0 → 0.3.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.
@@ -6,5 +6,4 @@ export declare class ExpirableCacheWithStaleWhileRevalidate<T> implements IStale
6
6
  constructor(timeToLive: number, staleWhileRevalidate: number);
7
7
  set(key: string, value: T): void;
8
8
  get(key: string): [State.Miss] | [State.Hit | State.StaleWhileRevalidate, T];
9
- private isStaleWhileRevalidate;
10
9
  }
@@ -18,18 +18,20 @@ export class ExpirableCacheWithStaleWhileRevalidate {
18
18
  return [State.Miss];
19
19
  }
20
20
  else {
21
- if (this.isStaleWhileRevalidate(record)) {
21
+ const timestamp = Date.now();
22
+ if (record.updatedAt + this.timeToLive > timestamp) {
23
+ return [State.Hit, record.value];
24
+ }
25
+ else if (record.updatedAt
26
+ + this.timeToLive
27
+ + this.staleWhileRevalidate
28
+ > timestamp) {
22
29
  return [State.StaleWhileRevalidate, record.value];
23
30
  }
24
31
  else {
25
- return [State.Hit, record.value];
32
+ return [State.Miss];
26
33
  }
27
34
  }
28
35
  }
29
- isStaleWhileRevalidate(record) {
30
- const timestamp = Date.now();
31
- return record.updatedAt + this.timeToLive <= timestamp
32
- && record.updatedAt + this.timeToLive + this.staleWhileRevalidate > timestamp;
33
- }
34
36
  }
35
37
  //# sourceMappingURL=expirable-cache-with-stale-while-revalidate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expirable-cache-with-stale-while-revalidate.js","sourceRoot":"","sources":["../../src/caches/expirable-cache-with-stale-while-revalidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAA8B,KAAK,EAAE,MAAM,eAAe,CAAA;AAOjE,MAAM,OAAO,sCAAsC;IAGjD,YAAoB,UAAkB,EAAU,oBAA4B;QAAxD,eAAU,GAAV,UAAU,CAAQ;QAAU,yBAAoB,GAApB,oBAAoB,CAAQ;QAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,UAAU,GAAG,oBAAoB,CAAC,CAAA;IACpE,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,MAAkB;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,OAAO,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS;eAC/C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;IACnF,CAAC;CACF"}
1
+ {"version":3,"file":"expirable-cache-with-stale-while-revalidate.js","sourceRoot":"","sources":["../../src/caches/expirable-cache-with-stale-while-revalidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAA8B,KAAK,EAAE,MAAM,eAAe,CAAA;AAOjE,MAAM,OAAO,sCAAsC;IAGjD,YAAoB,UAAkB,EAAU,oBAA4B;QAAxD,eAAU,GAAV,UAAU,CAAQ;QAAU,yBAAoB,GAApB,oBAAoB,CAAQ;QAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,UAAU,GAAG,oBAAoB,CAAC,CAAA;IACpE,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC;gBACnD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;iBAAM,IACL,MAAM,CAAC,SAAS;kBAChB,IAAI,CAAC,UAAU;kBACf,IAAI,CAAC,oBAAoB;kBACzB,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,8 +1,4 @@
1
1
  import { IStaleWhileRevalidateCache, State } from 'extra-memoize';
2
- interface IRecord<T> {
3
- updatedAt: number;
4
- value: T;
5
- }
6
2
  export declare class TLRUCacheWithStaleWhileRevalidate<T> implements IStaleWhileRevalidateCache<T> {
7
3
  private timeToLive;
8
4
  private staleWhileRevalidate;
@@ -10,6 +6,4 @@ export declare class TLRUCacheWithStaleWhileRevalidate<T> implements IStaleWhile
10
6
  constructor(limit: number, timeToLive: number, staleWhileRevalidate: number);
11
7
  set(key: string, value: T): void;
12
8
  get(key: string): [State.Miss] | [State.Hit | State.StaleWhileRevalidate, T];
13
- isStaleWhileRevalidate(record: IRecord<T>): boolean;
14
9
  }
15
- export {};
@@ -18,18 +18,20 @@ export class TLRUCacheWithStaleWhileRevalidate {
18
18
  return [State.Miss];
19
19
  }
20
20
  else {
21
- if (this.isStaleWhileRevalidate(record)) {
21
+ const timestamp = Date.now();
22
+ if (record.updatedAt + this.timeToLive > timestamp) {
23
+ return [State.Hit, record.value];
24
+ }
25
+ else if (record.updatedAt
26
+ + this.timeToLive
27
+ + this.staleWhileRevalidate
28
+ > timestamp) {
22
29
  return [State.StaleWhileRevalidate, record.value];
23
30
  }
24
31
  else {
25
- return [State.Hit, record.value];
32
+ return [State.Miss];
26
33
  }
27
34
  }
28
35
  }
29
- isStaleWhileRevalidate(record) {
30
- const timestamp = Date.now();
31
- return record.updatedAt + this.timeToLive <= timestamp
32
- && record.updatedAt + this.timeToLive + this.staleWhileRevalidate > timestamp;
33
- }
34
36
  }
35
37
  //# sourceMappingURL=tlru-cache-with-stale-while-revalidate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tlru-cache-with-stale-while-revalidate.js","sourceRoot":"","sources":["../../src/caches/tlru-cache-with-stale-while-revalidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAA8B,KAAK,EAAE,MAAM,eAAe,CAAA;AAOjE,MAAM,OAAO,iCAAiC;IAG5C,YACE,KAAa,EACL,UAAkB,EAClB,oBAA4B;QAD5B,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAEpC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAAA;IACtE,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,MAAkB;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,OAAO,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS;eAC/C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;IACnF,CAAC;CACF"}
1
+ {"version":3,"file":"tlru-cache-with-stale-while-revalidate.js","sourceRoot":"","sources":["../../src/caches/tlru-cache-with-stale-while-revalidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAA8B,KAAK,EAAE,MAAM,eAAe,CAAA;AAOjE,MAAM,OAAO,iCAAiC;IAG5C,YACE,KAAa,EACL,UAAkB,EAClB,oBAA4B;QAD5B,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAEpC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAAA;IACtE,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC;gBACnD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;iBAAM,IACL,MAAM,CAAC,SAAS;kBAChB,IAAI,CAAC,UAAU;kBACf,IAAI,CAAC,oBAAoB;kBACzB,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extra-memoize/memory-cache",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [
@@ -25,17 +25,19 @@ export class ExpirableCacheWithStaleWhileRevalidate<T> implements IStaleWhileRev
25
25
  if (state === State.Miss) {
26
26
  return [State.Miss]
27
27
  } else {
28
- if (this.isStaleWhileRevalidate(record)) {
28
+ const timestamp = Date.now()
29
+ if (record.updatedAt + this.timeToLive > timestamp) {
30
+ return [State.Hit, record.value]
31
+ } else if (
32
+ record.updatedAt
33
+ + this.timeToLive
34
+ + this.staleWhileRevalidate
35
+ > timestamp
36
+ ) {
29
37
  return [State.StaleWhileRevalidate, record.value]
30
38
  } else {
31
- return [State.Hit, record.value]
39
+ return [State.Miss]
32
40
  }
33
41
  }
34
42
  }
35
-
36
- private isStaleWhileRevalidate(record: IRecord<T>): boolean {
37
- const timestamp = Date.now()
38
- return record.updatedAt + this.timeToLive <= timestamp
39
- && record.updatedAt + this.timeToLive + this.staleWhileRevalidate > timestamp
40
- }
41
43
  }
@@ -29,17 +29,19 @@ export class TLRUCacheWithStaleWhileRevalidate<T> implements IStaleWhileRevalida
29
29
  if (state === State.Miss) {
30
30
  return [State.Miss]
31
31
  } else {
32
- if (this.isStaleWhileRevalidate(record)) {
32
+ const timestamp = Date.now()
33
+ if (record.updatedAt + this.timeToLive > timestamp) {
34
+ return [State.Hit, record.value]
35
+ } else if (
36
+ record.updatedAt
37
+ + this.timeToLive
38
+ + this.staleWhileRevalidate
39
+ > timestamp
40
+ ) {
33
41
  return [State.StaleWhileRevalidate, record.value]
34
42
  } else {
35
- return [State.Hit, record.value]
43
+ return [State.Miss]
36
44
  }
37
45
  }
38
46
  }
39
-
40
- isStaleWhileRevalidate(record: IRecord<T>): boolean {
41
- const timestamp = Date.now()
42
- return record.updatedAt + this.timeToLive <= timestamp
43
- && record.updatedAt + this.timeToLive + this.staleWhileRevalidate > timestamp
44
- }
45
47
  }