@extra-memoize/extra-disk-cache 0.1.0 → 0.4.0

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.
Files changed (26) hide show
  1. package/README.md +4 -0
  2. package/lib/es2015/async-disk-cache.d.ts +2 -2
  3. package/lib/es2015/async-disk-cache.js +7 -3
  4. package/lib/es2015/async-disk-cache.js.map +1 -1
  5. package/lib/es2015/stale-if-error-async-disk-cache.d.ts +1 -1
  6. package/lib/es2015/stale-if-error-async-disk-cache.js +12 -9
  7. package/lib/es2015/stale-if-error-async-disk-cache.js.map +1 -1
  8. package/lib/es2015/stale-while-revalidate-and-stale-if-error-async-disk-cache.d.ts +1 -1
  9. package/lib/es2015/stale-while-revalidate-and-stale-if-error-async-disk-cache.js +15 -12
  10. package/lib/es2015/stale-while-revalidate-and-stale-if-error-async-disk-cache.js.map +1 -1
  11. package/lib/es2015/stale-while-revalidate-async-disk-cache.d.ts +2 -2
  12. package/lib/es2015/stale-while-revalidate-async-disk-cache.js +7 -3
  13. package/lib/es2015/stale-while-revalidate-async-disk-cache.js.map +1 -1
  14. package/lib/es2018/async-disk-cache.d.ts +2 -2
  15. package/lib/es2018/async-disk-cache.js +7 -3
  16. package/lib/es2018/async-disk-cache.js.map +1 -1
  17. package/lib/es2018/stale-if-error-async-disk-cache.d.ts +1 -1
  18. package/lib/es2018/stale-if-error-async-disk-cache.js +12 -9
  19. package/lib/es2018/stale-if-error-async-disk-cache.js.map +1 -1
  20. package/lib/es2018/stale-while-revalidate-and-stale-if-error-async-disk-cache.d.ts +1 -1
  21. package/lib/es2018/stale-while-revalidate-and-stale-if-error-async-disk-cache.js +15 -12
  22. package/lib/es2018/stale-while-revalidate-and-stale-if-error-async-disk-cache.js.map +1 -1
  23. package/lib/es2018/stale-while-revalidate-async-disk-cache.d.ts +2 -2
  24. package/lib/es2018/stale-while-revalidate-async-disk-cache.js +7 -3
  25. package/lib/es2018/stale-while-revalidate-async-disk-cache.js.map +1 -1
  26. package/package.json +9 -9
package/README.md CHANGED
@@ -1,4 +1,8 @@
1
1
  # @extra-memoize/extra-disk-cache
2
+ The adapter for [extra-disk-cache].
3
+
4
+ [extra-disk-cache]: https://www.npmjs.com/package/BlackGlory/extra-disk-cache
5
+
2
6
  ## Install
3
7
  ```sh
4
8
  npm install --save @extra-memoize/extra-disk-cache
@@ -1,11 +1,11 @@
1
1
  /// <reference types="node" />
2
- import { IAsyncCache } from 'extra-memoize';
2
+ import { IAsyncCache, State } from 'extra-memoize';
3
3
  import { DiskCache } from 'extra-disk-cache';
4
4
  export declare class AsyncDiskCache<T> implements IAsyncCache<T> {
5
5
  private cache;
6
6
  private toBuffer;
7
7
  private fromBuffer;
8
8
  constructor(cache: DiskCache, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
9
- get(key: string): Promise<T | undefined>;
9
+ get(key: string): Promise<[State.Miss] | [State.Hit, T]>;
10
10
  set(key: string, value: T): Promise<void>;
11
11
  }
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AsyncDiskCache = void 0;
13
+ const extra_memoize_1 = require("extra-memoize");
13
14
  const prelude_1 = require("@blackglory/prelude");
14
15
  const utils_1 = require("./utils");
15
16
  class AsyncDiskCache {
@@ -21,9 +22,12 @@ class AsyncDiskCache {
21
22
  get(key) {
22
23
  return __awaiter(this, void 0, void 0, function* () {
23
24
  const value = yield this.cache.getData(key);
24
- if ((0, prelude_1.isUndefined)(value))
25
- return undefined;
26
- return this.fromBuffer(value);
25
+ if ((0, prelude_1.isUndefined)(value)) {
26
+ return [extra_memoize_1.State.Miss];
27
+ }
28
+ else {
29
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
30
+ }
27
31
  });
28
32
  }
29
33
  set(key, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"async-disk-cache.js","sourceRoot":"","sources":["../../src/async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,cAAc;IACzB,YACU,KAAgB,EAChB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAFrD,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAA;YAExC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QACrD,CAAC;KAAA;CACF;AAjBD,wCAiBC"}
1
+ {"version":3,"file":"async-disk-cache.js","sourceRoot":"","sources":["../../src/async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAkD;AAElD,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,cAAc;IACzB,YACU,KAAgB,EAChB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAFrD,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,EAAE;gBACtB,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;aACpB;iBAAM;gBACL,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC3C;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QACrD,CAAC;KAAA;CACF;AAnBD,wCAmBC"}
@@ -8,6 +8,6 @@ export declare class StaleIfErrorAsyncDiskCache<T> implements IStaleIfErrorAsync
8
8
  private toBuffer;
9
9
  private fromBuffer;
10
10
  constructor(cache: DiskCache, timeToLive: number, staleIfError: number, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
11
- get(key: string): Promise<[State.Miss, undefined] | [State.Hit | State.StaleIfError, T]>;
11
+ get(key: string): Promise<[State.Miss] | [State.Hit | State.StaleIfError, T]>;
12
12
  set(key: string, value: T): Promise<void>;
13
13
  }
@@ -25,17 +25,20 @@ class StaleIfErrorAsyncDiskCache {
25
25
  return __awaiter(this, void 0, void 0, function* () {
26
26
  const value = yield this.cache.getData(key);
27
27
  const metadata = this.cache.getMetadata(key);
28
- if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata))
29
- return [extra_memoize_1.State.Miss, undefined];
30
- const elapsed = Date.now() - metadata.updatedAt;
31
- if (elapsed <= this.timeToLive) {
32
- return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
33
- }
34
- else if (elapsed <= this.timeToLive + this.staleIfError) {
35
- return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
28
+ if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata)) {
29
+ return [extra_memoize_1.State.Miss];
36
30
  }
37
31
  else {
38
- return [extra_memoize_1.State.Miss, undefined];
32
+ const elapsed = Date.now() - metadata.updatedAt;
33
+ if (elapsed <= this.timeToLive) {
34
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
35
+ }
36
+ else if (elapsed <= this.timeToLive + this.staleIfError) {
37
+ return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
38
+ }
39
+ else {
40
+ return [extra_memoize_1.State.Miss];
41
+ }
39
42
  }
40
43
  });
41
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8D;AAE9D,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,0BAA0B;IACrC,YACU,KAAgB,EAChB,UAAkB,EAClB,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YAE/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC3C;iBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;gBACzD,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aACpD;iBAAM;gBAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;aAC/B;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,CAClB,CAAA;QACH,CAAC;KAAA;CACF;AArCD,gEAqCC"}
1
+ {"version":3,"file":"stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8D;AAE9D,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,0BAA0B;IACrC,YACU,KAAgB,EAChB,UAAkB,EAClB,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;gBAC/C,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;aACpB;iBAAM;gBACL,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;gBAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;oBAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;iBAC3C;qBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;oBACzD,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;iBACpD;qBAAM;oBAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;iBACpB;aACF;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,CAClB,CAAA;QACH,CAAC;KAAA;CACF;AAvCD,gEAuCC"}
@@ -9,6 +9,6 @@ export declare class StaleWhileRevalidateAndStaleIfErrorAsyncDiskCache<T> implem
9
9
  private toBuffer;
10
10
  private fromBuffer;
11
11
  constructor(cache: DiskCache, timeToLive: number, staleWhileRevalidate: number, staleIfError: number, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
12
- get(key: string): Promise<[State.Miss, undefined] | [State.Hit | State.StaleWhileRevalidate | State.StaleIfError, T]>;
12
+ get(key: string): Promise<[State.Miss] | [State.Hit | State.StaleWhileRevalidate | State.StaleIfError, T]>;
13
13
  set(key: string, value: T): Promise<void>;
14
14
  }
@@ -26,20 +26,23 @@ class StaleWhileRevalidateAndStaleIfErrorAsyncDiskCache {
26
26
  return __awaiter(this, void 0, void 0, function* () {
27
27
  const value = yield this.cache.getData(key);
28
28
  const metadata = this.cache.getMetadata(key);
29
- if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata))
30
- return [extra_memoize_1.State.Miss, undefined];
31
- const elapsed = Date.now() - metadata.updatedAt;
32
- if (elapsed <= this.timeToLive) {
33
- return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
34
- }
35
- else if (elapsed <= this.timeToLive + this.staleWhileRevalidate) {
36
- return [extra_memoize_1.State.StaleWhileRevalidate, this.fromBuffer(value)];
37
- }
38
- else if (elapsed <= this.timeToLive + this.staleWhileRevalidate + this.staleIfError) {
39
- return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
29
+ if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata)) {
30
+ return [extra_memoize_1.State.Miss];
40
31
  }
41
32
  else {
42
- return [extra_memoize_1.State.Miss, undefined];
33
+ const elapsed = Date.now() - metadata.updatedAt;
34
+ if (elapsed <= this.timeToLive) {
35
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
36
+ }
37
+ else if (elapsed <= this.timeToLive + this.staleWhileRevalidate) {
38
+ return [extra_memoize_1.State.StaleWhileRevalidate, this.fromBuffer(value)];
39
+ }
40
+ else if (elapsed <= this.timeToLive + this.staleWhileRevalidate + this.staleIfError) {
41
+ return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
42
+ }
43
+ else {
44
+ return [extra_memoize_1.State.Miss];
45
+ }
43
46
  }
44
47
  });
45
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stale-while-revalidate-and-stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-and-stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqF;AAErF,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,iDAAiD;IAC5D,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QALrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YAE/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC3C;iBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;gBACjE,OAAO,CAAC,qBAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC5D;iBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE;gBACrF,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aACpD;iBAAM;gBAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;aAC/B;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAC9C,CAAA;QACH,CAAC;KAAA;CACF;AAxCD,8GAwCC"}
1
+ {"version":3,"file":"stale-while-revalidate-and-stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-and-stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqF;AAErF,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,iDAAiD;IAC5D,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QALrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;gBAC/C,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;aACpB;iBAAM;gBACL,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;gBAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;oBAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;iBAC3C;qBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;oBACjE,OAAO,CAAC,qBAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;iBAC5D;qBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE;oBACrF,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;iBACpD;qBAAM;oBAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;iBACpB;aACF;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAC9C,CAAA;QACH,CAAC;KAAA;CACF;AA1CD,8GA0CC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { IStaleWhileRevalidateAsyncCache } from 'extra-memoize';
2
+ import { IStaleWhileRevalidateAsyncCache, State } from 'extra-memoize';
3
3
  import { DiskCache } from 'extra-disk-cache';
4
4
  export declare class StaleWhileRevalidateAsyncDiskCache<T> implements IStaleWhileRevalidateAsyncCache<T> {
5
5
  private cache;
@@ -8,7 +8,7 @@ export declare class StaleWhileRevalidateAsyncDiskCache<T> implements IStaleWhil
8
8
  private toBuffer;
9
9
  private fromBuffer;
10
10
  constructor(cache: DiskCache, timeToLive: number, staleWhileRevalidate: number, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
11
- get(key: string): Promise<T | undefined>;
11
+ get(key: string): Promise<[State.Miss] | [State.Hit, T]>;
12
12
  set(key: string, value: T): Promise<void>;
13
13
  isStaleWhileRevalidate(key: string): Promise<boolean>;
14
14
  }
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.StaleWhileRevalidateAsyncDiskCache = void 0;
13
+ const extra_memoize_1 = require("extra-memoize");
13
14
  const prelude_1 = require("@blackglory/prelude");
14
15
  const utils_1 = require("./utils");
15
16
  class StaleWhileRevalidateAsyncDiskCache {
@@ -23,9 +24,12 @@ class StaleWhileRevalidateAsyncDiskCache {
23
24
  get(key) {
24
25
  return __awaiter(this, void 0, void 0, function* () {
25
26
  const value = yield this.cache.getData(key);
26
- if ((0, prelude_1.isUndefined)(value))
27
- return undefined;
28
- return this.fromBuffer(value);
27
+ if ((0, prelude_1.isUndefined)(value)) {
28
+ return [extra_memoize_1.State.Miss];
29
+ }
30
+ else {
31
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
32
+ }
29
33
  });
30
34
  }
31
35
  set(key, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"stale-while-revalidate-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,kCAAkC;IAC7C,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAA;YAExC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,CAC1B,CAAA;QACH,CAAC;KAAA;IAEK,sBAAsB,CAAC,GAAW;;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAA;YAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC/C,OAAO,OAAO,GAAG,IAAI,CAAC,UAAU;mBACzB,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAA;QAC9D,CAAC;KAAA;CACF;AAlCD,gFAkCC"}
1
+ {"version":3,"file":"stale-while-revalidate-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-async-disk-cache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAsE;AAEtE,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,kCAAkC;IAC7C,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEE,GAAG,CAAC,GAAW;;YACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,EAAE;gBACtB,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;aACpB;iBAAM;gBACL,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC3C;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW,EAAE,KAAQ;;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,CAC1B,CAAA;QACH,CAAC;KAAA;IAEK,sBAAsB,CAAC,GAAW;;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAA;YAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC/C,OAAO,OAAO,GAAG,IAAI,CAAC,UAAU;mBACzB,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAA;QAC9D,CAAC;KAAA;CACF;AApCD,gFAoCC"}
@@ -1,11 +1,11 @@
1
1
  /// <reference types="node" />
2
- import { IAsyncCache } from 'extra-memoize';
2
+ import { IAsyncCache, State } from 'extra-memoize';
3
3
  import { DiskCache } from 'extra-disk-cache';
4
4
  export declare class AsyncDiskCache<T> implements IAsyncCache<T> {
5
5
  private cache;
6
6
  private toBuffer;
7
7
  private fromBuffer;
8
8
  constructor(cache: DiskCache, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
9
- get(key: string): Promise<T | undefined>;
9
+ get(key: string): Promise<[State.Miss] | [State.Hit, T]>;
10
10
  set(key: string, value: T): Promise<void>;
11
11
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AsyncDiskCache = void 0;
4
+ const extra_memoize_1 = require("extra-memoize");
4
5
  const prelude_1 = require("@blackglory/prelude");
5
6
  const utils_1 = require("./utils");
6
7
  class AsyncDiskCache {
@@ -11,9 +12,12 @@ class AsyncDiskCache {
11
12
  }
12
13
  async get(key) {
13
14
  const value = await this.cache.getData(key);
14
- if ((0, prelude_1.isUndefined)(value))
15
- return undefined;
16
- return this.fromBuffer(value);
15
+ if ((0, prelude_1.isUndefined)(value)) {
16
+ return [extra_memoize_1.State.Miss];
17
+ }
18
+ else {
19
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
20
+ }
17
21
  }
18
22
  async set(key, value) {
19
23
  await this.cache.setData(key, this.toBuffer(value));
@@ -1 +1 @@
1
- {"version":3,"file":"async-disk-cache.js","sourceRoot":"","sources":["../../src/async-disk-cache.ts"],"names":[],"mappings":";;;AAEA,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,cAAc;IACzB,YACU,KAAgB,EAChB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAFrD,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QAExC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,CAAC;CACF;AAjBD,wCAiBC"}
1
+ {"version":3,"file":"async-disk-cache.js","sourceRoot":"","sources":["../../src/async-disk-cache.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAElD,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,cAAc;IACzB,YACU,KAAgB,EAChB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAFrD,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;SACpB;aAAM;YACL,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SAC3C;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,CAAC;CACF;AAnBD,wCAmBC"}
@@ -8,6 +8,6 @@ export declare class StaleIfErrorAsyncDiskCache<T> implements IStaleIfErrorAsync
8
8
  private toBuffer;
9
9
  private fromBuffer;
10
10
  constructor(cache: DiskCache, timeToLive: number, staleIfError: number, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
11
- get(key: string): Promise<[State.Miss, undefined] | [State.Hit | State.StaleIfError, T]>;
11
+ get(key: string): Promise<[State.Miss] | [State.Hit | State.StaleIfError, T]>;
12
12
  set(key: string, value: T): Promise<void>;
13
13
  }
@@ -15,17 +15,20 @@ class StaleIfErrorAsyncDiskCache {
15
15
  async get(key) {
16
16
  const value = await this.cache.getData(key);
17
17
  const metadata = this.cache.getMetadata(key);
18
- if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata))
19
- return [extra_memoize_1.State.Miss, undefined];
20
- const elapsed = Date.now() - metadata.updatedAt;
21
- if (elapsed <= this.timeToLive) {
22
- return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
23
- }
24
- else if (elapsed <= this.timeToLive + this.staleIfError) {
25
- return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
18
+ if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata)) {
19
+ return [extra_memoize_1.State.Miss];
26
20
  }
27
21
  else {
28
- return [extra_memoize_1.State.Miss, undefined];
22
+ const elapsed = Date.now() - metadata.updatedAt;
23
+ if (elapsed <= this.timeToLive) {
24
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
25
+ }
26
+ else if (elapsed <= this.timeToLive + this.staleIfError) {
27
+ return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
28
+ }
29
+ else {
30
+ return [extra_memoize_1.State.Miss];
31
+ }
29
32
  }
30
33
  }
31
34
  async set(key, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;AAAA,iDAA8D;AAE9D,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,0BAA0B;IACrC,YACU,KAAgB,EAChB,UAAkB,EAClB,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;QAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;YAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SAC3C;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;YACzD,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SACpD;aAAM;YAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;SAC/B;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,CAClB,CAAA;IACH,CAAC;CACF;AArCD,gEAqCC"}
1
+ {"version":3,"file":"stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;AAAA,iDAA8D;AAE9D,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,0BAA0B;IACrC,YACU,KAAgB,EAChB,UAAkB,EAClB,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;YAC/C,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;SACpB;aAAM;YACL,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC3C;iBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;gBACzD,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aACpD;iBAAM;gBAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;aACpB;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,CAClB,CAAA;IACH,CAAC;CACF;AAvCD,gEAuCC"}
@@ -9,6 +9,6 @@ export declare class StaleWhileRevalidateAndStaleIfErrorAsyncDiskCache<T> implem
9
9
  private toBuffer;
10
10
  private fromBuffer;
11
11
  constructor(cache: DiskCache, timeToLive: number, staleWhileRevalidate: number, staleIfError: number, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
12
- get(key: string): Promise<[State.Miss, undefined] | [State.Hit | State.StaleWhileRevalidate | State.StaleIfError, T]>;
12
+ get(key: string): Promise<[State.Miss] | [State.Hit | State.StaleWhileRevalidate | State.StaleIfError, T]>;
13
13
  set(key: string, value: T): Promise<void>;
14
14
  }
@@ -16,20 +16,23 @@ class StaleWhileRevalidateAndStaleIfErrorAsyncDiskCache {
16
16
  async get(key) {
17
17
  const value = await this.cache.getData(key);
18
18
  const metadata = this.cache.getMetadata(key);
19
- if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata))
20
- return [extra_memoize_1.State.Miss, undefined];
21
- const elapsed = Date.now() - metadata.updatedAt;
22
- if (elapsed <= this.timeToLive) {
23
- return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
24
- }
25
- else if (elapsed <= this.timeToLive + this.staleWhileRevalidate) {
26
- return [extra_memoize_1.State.StaleWhileRevalidate, this.fromBuffer(value)];
27
- }
28
- else if (elapsed <= this.timeToLive + this.staleWhileRevalidate + this.staleIfError) {
29
- return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
19
+ if ((0, prelude_1.isUndefined)(value) || (0, prelude_1.isUndefined)(metadata)) {
20
+ return [extra_memoize_1.State.Miss];
30
21
  }
31
22
  else {
32
- return [extra_memoize_1.State.Miss, undefined];
23
+ const elapsed = Date.now() - metadata.updatedAt;
24
+ if (elapsed <= this.timeToLive) {
25
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
26
+ }
27
+ else if (elapsed <= this.timeToLive + this.staleWhileRevalidate) {
28
+ return [extra_memoize_1.State.StaleWhileRevalidate, this.fromBuffer(value)];
29
+ }
30
+ else if (elapsed <= this.timeToLive + this.staleWhileRevalidate + this.staleIfError) {
31
+ return [extra_memoize_1.State.StaleIfError, this.fromBuffer(value)];
32
+ }
33
+ else {
34
+ return [extra_memoize_1.State.Miss];
35
+ }
33
36
  }
34
37
  }
35
38
  async set(key, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"stale-while-revalidate-and-stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-and-stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;AAAA,iDAAqF;AAErF,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,iDAAiD;IAC5D,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QALrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;QAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;YAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SAC3C;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;YACjE,OAAO,CAAC,qBAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SAC5D;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE;YACrF,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SACpD;aAAM;YAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;SAC/B;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAC9C,CAAA;IACH,CAAC;CACF;AAxCD,8GAwCC"}
1
+ {"version":3,"file":"stale-while-revalidate-and-stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-and-stale-if-error-async-disk-cache.ts"],"names":[],"mappings":";;;AAAA,iDAAqF;AAErF,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,iDAAiD;IAC5D,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,YAAoB,EACpB,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QALrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QAInB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;YAC/C,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;SACpB;aAAM;YACL,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC9B,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC3C;iBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;gBACjE,OAAO,CAAC,qBAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aAC5D;iBAAM,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE;gBACrF,OAAO,CAAC,qBAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;aACpD;iBAAM;gBAEL,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;aACpB;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAC9C,CAAA;IACH,CAAC;CACF;AA1CD,8GA0CC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { IStaleWhileRevalidateAsyncCache } from 'extra-memoize';
2
+ import { IStaleWhileRevalidateAsyncCache, State } from 'extra-memoize';
3
3
  import { DiskCache } from 'extra-disk-cache';
4
4
  export declare class StaleWhileRevalidateAsyncDiskCache<T> implements IStaleWhileRevalidateAsyncCache<T> {
5
5
  private cache;
@@ -8,7 +8,7 @@ export declare class StaleWhileRevalidateAsyncDiskCache<T> implements IStaleWhil
8
8
  private toBuffer;
9
9
  private fromBuffer;
10
10
  constructor(cache: DiskCache, timeToLive: number, staleWhileRevalidate: number, toBuffer?: (value: T) => Buffer, fromBuffer?: (buffer: Buffer) => T);
11
- get(key: string): Promise<T | undefined>;
11
+ get(key: string): Promise<[State.Miss] | [State.Hit, T]>;
12
12
  set(key: string, value: T): Promise<void>;
13
13
  isStaleWhileRevalidate(key: string): Promise<boolean>;
14
14
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StaleWhileRevalidateAsyncDiskCache = void 0;
4
+ const extra_memoize_1 = require("extra-memoize");
4
5
  const prelude_1 = require("@blackglory/prelude");
5
6
  const utils_1 = require("./utils");
6
7
  class StaleWhileRevalidateAsyncDiskCache {
@@ -13,9 +14,12 @@ class StaleWhileRevalidateAsyncDiskCache {
13
14
  }
14
15
  async get(key) {
15
16
  const value = await this.cache.getData(key);
16
- if ((0, prelude_1.isUndefined)(value))
17
- return undefined;
18
- return this.fromBuffer(value);
17
+ if ((0, prelude_1.isUndefined)(value)) {
18
+ return [extra_memoize_1.State.Miss];
19
+ }
20
+ else {
21
+ return [extra_memoize_1.State.Hit, this.fromBuffer(value)];
22
+ }
19
23
  }
20
24
  async set(key, value) {
21
25
  await this.cache.set(key, this.toBuffer(value), Date.now(), this.timeToLive, this.staleWhileRevalidate);
@@ -1 +1 @@
1
- {"version":3,"file":"stale-while-revalidate-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-async-disk-cache.ts"],"names":[],"mappings":";;;AAEA,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,kCAAkC;IAC7C,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QAExC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,CAC1B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,GAAW;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;QAC/C,OAAO,OAAO,GAAG,IAAI,CAAC,UAAU;eACzB,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAA;IAC9D,CAAC;CACF;AAlCD,gFAkCC"}
1
+ {"version":3,"file":"stale-while-revalidate-async-disk-cache.js","sourceRoot":"","sources":["../../src/stale-while-revalidate-async-disk-cache.ts"],"names":[],"mappings":";;;AAAA,iDAAsE;AAEtE,iDAAiD;AACjD,mCAA4D;AAE5D,MAAa,kCAAkC;IAC7C,YACU,KAAgB,EAChB,UAAkB,EAClB,oBAA4B,EAC5B,WAAiC,uBAAe,EAChD,aAAoC,yBAAiB;QAJrD,UAAK,GAAL,KAAK,CAAW;QAChB,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,aAAQ,GAAR,QAAQ,CAAwC;QAChD,eAAU,GAAV,UAAU,CAA2C;IAC5D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,IAAA,qBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,OAAO,CAAC,qBAAK,CAAC,IAAI,CAAC,CAAA;SACpB;aAAM;YACL,OAAO,CAAC,qBAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;SAC3C;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,CAC1B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,GAAW;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,IAAA,qBAAW,EAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAA;QAC/C,OAAO,OAAO,GAAG,IAAI,CAAC,UAAU;eACzB,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAA;IAC9D,CAAC;CACF;AApCD,gFAoCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extra-memoize/extra-disk-cache",
3
- "version": "0.1.0",
3
+ "version": "0.4.0",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib"
@@ -39,11 +39,11 @@
39
39
  "@commitlint/cli": "^16.2.3",
40
40
  "@commitlint/config-conventional": "^16.2.1",
41
41
  "@types/jest": "^27.4.1",
42
- "@typescript-eslint/eslint-plugin": "^5.18.0",
43
- "@typescript-eslint/parser": "^5.18.0",
44
- "eslint": "^8.12.0",
45
- "extra-disk-cache": "^0.4.3",
46
- "extra-memoize": "^0.4.8",
42
+ "@typescript-eslint/eslint-plugin": "^5.19.0",
43
+ "@typescript-eslint/parser": "^5.19.0",
44
+ "eslint": "^8.13.0",
45
+ "extra-disk-cache": "^0.5.1",
46
+ "extra-memoize": "^0.6.0",
47
47
  "husky": "^4.3.8",
48
48
  "jest": "^27.5.1",
49
49
  "npm-run-all": "^4.1.5",
@@ -56,10 +56,10 @@
56
56
  "typescript": "^4.6.3"
57
57
  },
58
58
  "dependencies": {
59
- "@blackglory/prelude": "^0.1.0"
59
+ "@blackglory/prelude": "^0.1.1"
60
60
  },
61
61
  "peerDependencies": {
62
- "extra-disk-cache": "^0.4.3",
63
- "extra-memoize": "^0.4.8"
62
+ "extra-disk-cache": "^0.5.0",
63
+ "extra-memoize": "^0.6.0"
64
64
  }
65
65
  }