@extra-memoize/extra-disk-cache 0.9.0 → 0.9.2
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/stale-if-error-async-disk-cache.js +7 -2
- package/lib/stale-if-error-async-disk-cache.js.map +1 -1
- package/lib/stale-while-revalidate-and-stale-if-error-async-disk-cache.js +12 -3
- package/lib/stale-while-revalidate-and-stale-if-error-async-disk-cache.js.map +1 -1
- package/lib/stale-while-revalidate-async-disk-cache.d.ts +0 -1
- package/lib/stale-while-revalidate-async-disk-cache.js +11 -7
- package/lib/stale-while-revalidate-async-disk-cache.js.map +1 -1
- package/package.json +1 -2
- package/src/stale-if-error-async-disk-cache.ts +11 -2
- package/src/stale-while-revalidate-and-stale-if-error-async-disk-cache.ts +18 -3
- package/src/stale-while-revalidate-async-disk-cache.ts +14 -8
|
@@ -13,10 +13,15 @@ export class StaleIfErrorDiskCache {
|
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
15
15
|
const timestamp = Date.now();
|
|
16
|
-
if (item.updatedAt
|
|
16
|
+
if (item.updatedAt
|
|
17
|
+
+ this.timeToLive
|
|
18
|
+
> timestamp) {
|
|
17
19
|
return [State.Hit, item.value];
|
|
18
20
|
}
|
|
19
|
-
else if (item.updatedAt
|
|
21
|
+
else if (item.updatedAt
|
|
22
|
+
+ this.timeToLive
|
|
23
|
+
+ this.staleIfError
|
|
24
|
+
> timestamp) {
|
|
20
25
|
return [State.StaleIfError, item.value];
|
|
21
26
|
}
|
|
22
27
|
else {
|
|
@@ -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,OAAO,EAAsB,KAAK,EAAE,MAAM,eAAe,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,OAAO,qBAAqB;IAChC,YACU,IAA8B,EAC9B,UAAkB,EAClB,YAAoB;QAFpB,SAAI,GAAJ,IAAI,CAA0B;QAC9B,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;IAC3B,CAAC;IAEJ,GAAG,CAAC,GAAW;QAGb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,
|
|
1
|
+
{"version":3,"file":"stale-if-error-async-disk-cache.js","sourceRoot":"","sources":["../src/stale-if-error-async-disk-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,EAAE,MAAM,eAAe,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,OAAO,qBAAqB;IAChC,YACU,IAA8B,EAC9B,UAAkB,EAClB,YAAoB;QAFpB,SAAI,GAAJ,IAAI,CAA0B;QAC9B,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;IAC3B,CAAC;IAEJ,GAAG,CAAC,GAAW;QAGb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,IACE,IAAI,CAAC,SAAS;kBACd,IAAI,CAAC,UAAU;kBACf,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,IACL,IAAI,CAAC,SAAS;kBACd,IAAI,CAAC,UAAU;kBACf,IAAI,CAAC,YAAY;kBACjB,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACzC,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,GAAG,EACH,KAAK,EACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CACpC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -14,13 +14,22 @@ export class StaleWhileRevalidateAndStaleIfErrorDiskCache {
|
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
16
|
const timestamp = Date.now();
|
|
17
|
-
if (item.updatedAt
|
|
17
|
+
if (item.updatedAt
|
|
18
|
+
+ this.timeToLive
|
|
19
|
+
> timestamp) {
|
|
18
20
|
return [State.Hit, item.value];
|
|
19
21
|
}
|
|
20
|
-
else if (item.updatedAt
|
|
22
|
+
else if (item.updatedAt
|
|
23
|
+
+ this.timeToLive
|
|
24
|
+
+ this.staleWhileRevalidate
|
|
25
|
+
> timestamp) {
|
|
21
26
|
return [State.StaleWhileRevalidate, item.value];
|
|
22
27
|
}
|
|
23
|
-
else if (item.updatedAt
|
|
28
|
+
else if (item.updatedAt
|
|
29
|
+
+ this.timeToLive
|
|
30
|
+
+ this.staleWhileRevalidate
|
|
31
|
+
+ this.staleIfError
|
|
32
|
+
> timestamp) {
|
|
24
33
|
return [State.StaleIfError, item.value];
|
|
25
34
|
}
|
|
26
35
|
else {
|
|
@@ -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,OAAO,EAA6C,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,OAAO,4CAA4C;IACvD,YACU,IAA8B,EAC9B,UAAkB,EAClB,oBAA4B,EAC5B,YAAoB;QAHpB,SAAI,GAAJ,IAAI,CAA0B;QAC9B,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;IAC3B,CAAC;IAEJ,GAAG,CAAC,GAAW;QAGb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,
|
|
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,OAAO,EAA6C,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,OAAO,4CAA4C;IACvD,YACU,IAA8B,EAC9B,UAAkB,EAClB,oBAA4B,EAC5B,YAAoB;QAHpB,SAAI,GAAJ,IAAI,CAA0B;QAC9B,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;QAC5B,iBAAY,GAAZ,YAAY,CAAQ;IAC3B,CAAC;IAEJ,GAAG,CAAC,GAAW;QAGb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,IACE,IAAI,CAAC,SAAS;kBACd,IAAI,CAAC,UAAU;kBACf,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,IACL,IAAI,CAAC,SAAS;kBACd,IAAI,CAAC,UAAU;kBACf,IAAI,CAAC,oBAAoB;kBACzB,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACjD,CAAC;iBAAM,IACL,IAAI,CAAC,SAAS;kBACd,IAAI,CAAC,UAAU;kBACf,IAAI,CAAC,oBAAoB;kBACzB,IAAI,CAAC,YAAY;kBACjB,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACzC,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,GAAG,EACH,KAAK,EACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAChE,CAAA;IACH,CAAC;CACF"}
|
|
@@ -7,5 +7,4 @@ export declare class StaleWhileRevalidateDiskCache<T> implements IStaleWhileReva
|
|
|
7
7
|
constructor(view: DiskCacheView<string, T>, timeToLive: number, staleWhileRevalidate: number);
|
|
8
8
|
get(key: string): [State.Miss] | [State.Hit | State.StaleWhileRevalidate, T];
|
|
9
9
|
set(key: string, value: T): void;
|
|
10
|
-
private isStaleWhileRevalidate;
|
|
11
10
|
}
|
|
@@ -12,21 +12,25 @@ export class StaleWhileRevalidateDiskCache {
|
|
|
12
12
|
return [State.Miss];
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
15
|
-
|
|
15
|
+
const timestamp = Date.now();
|
|
16
|
+
if (item.updatedAt
|
|
17
|
+
+ this.timeToLive
|
|
18
|
+
> timestamp) {
|
|
19
|
+
return [State.Hit, item.value];
|
|
20
|
+
}
|
|
21
|
+
else if (item.updatedAt
|
|
22
|
+
+ this.timeToLive
|
|
23
|
+
+ this.staleWhileRevalidate
|
|
24
|
+
> timestamp) {
|
|
16
25
|
return [State.StaleWhileRevalidate, item.value];
|
|
17
26
|
}
|
|
18
27
|
else {
|
|
19
|
-
return [State.
|
|
28
|
+
return [State.Miss];
|
|
20
29
|
}
|
|
21
30
|
}
|
|
22
31
|
}
|
|
23
32
|
set(key, value) {
|
|
24
33
|
this.view.set(key, value, this.timeToLive + this.staleWhileRevalidate);
|
|
25
34
|
}
|
|
26
|
-
isStaleWhileRevalidate(updatedAt) {
|
|
27
|
-
const timestamp = Date.now();
|
|
28
|
-
return updatedAt + this.timeToLive <= timestamp
|
|
29
|
-
&& updatedAt + this.timeToLive + this.staleWhileRevalidate > timestamp;
|
|
30
|
-
}
|
|
31
35
|
}
|
|
32
36
|
//# sourceMappingURL=stale-while-revalidate-async-disk-cache.js.map
|
|
@@ -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":"AAAA,OAAO,EAA8B,KAAK,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,OAAO,6BAA6B;IACxC,YACU,IAA8B,EAC9B,UAAkB,EAClB,oBAA4B;QAF5B,SAAI,GAAJ,IAAI,CAA0B;QAC9B,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;IACnC,CAAC;IAEJ,GAAG,CAAC,GAAW;QAGb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,
|
|
1
|
+
{"version":3,"file":"stale-while-revalidate-async-disk-cache.js","sourceRoot":"","sources":["../src/stale-while-revalidate-async-disk-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,OAAO,6BAA6B;IACxC,YACU,IAA8B,EAC9B,UAAkB,EAClB,oBAA4B;QAF5B,SAAI,GAAJ,IAAI,CAA0B;QAC9B,eAAU,GAAV,UAAU,CAAQ;QAClB,yBAAoB,GAApB,oBAAoB,CAAQ;IACnC,CAAC;IAEJ,GAAG,CAAC,GAAW;QAGb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,IACE,IAAI,CAAC,SAAS;kBACd,IAAI,CAAC,UAAU;kBACf,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,IACL,IAAI,CAAC,SAAS;kBACd,IAAI,CAAC,UAAU;kBACf,IAAI,CAAC,oBAAoB;kBACzB,SAAS,EACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,GAAG,EACH,KAAK,EACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAC5C,CAAA;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extra-memoize/extra-disk-cache",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib",
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
"extra-memoize": "^0.10.0",
|
|
41
41
|
"husky": "^4.3.8",
|
|
42
42
|
"npm-run-all": "^4.1.5",
|
|
43
|
-
"return-style": "^3.0.1",
|
|
44
43
|
"rimraf": "^6.0.1",
|
|
45
44
|
"standard-version": "^9.5.0",
|
|
46
45
|
"ts-patch": "^3.3.0",
|
|
@@ -17,9 +17,18 @@ export class StaleIfErrorDiskCache<T> implements IStaleIfErrorCache<T> {
|
|
|
17
17
|
return [State.Miss]
|
|
18
18
|
} else {
|
|
19
19
|
const timestamp = Date.now()
|
|
20
|
-
if (
|
|
20
|
+
if (
|
|
21
|
+
item.updatedAt
|
|
22
|
+
+ this.timeToLive
|
|
23
|
+
> timestamp
|
|
24
|
+
) {
|
|
21
25
|
return [State.Hit, item.value]
|
|
22
|
-
} else if (
|
|
26
|
+
} else if (
|
|
27
|
+
item.updatedAt
|
|
28
|
+
+ this.timeToLive
|
|
29
|
+
+ this.staleIfError
|
|
30
|
+
> timestamp
|
|
31
|
+
) {
|
|
23
32
|
return [State.StaleIfError, item.value]
|
|
24
33
|
} else {
|
|
25
34
|
// just in case
|
|
@@ -18,11 +18,26 @@ export class StaleWhileRevalidateAndStaleIfErrorDiskCache<T> implements IStaleWh
|
|
|
18
18
|
return [State.Miss]
|
|
19
19
|
} else {
|
|
20
20
|
const timestamp = Date.now()
|
|
21
|
-
if (
|
|
21
|
+
if (
|
|
22
|
+
item.updatedAt
|
|
23
|
+
+ this.timeToLive
|
|
24
|
+
> timestamp
|
|
25
|
+
) {
|
|
22
26
|
return [State.Hit, item.value]
|
|
23
|
-
} else if (
|
|
27
|
+
} else if (
|
|
28
|
+
item.updatedAt
|
|
29
|
+
+ this.timeToLive
|
|
30
|
+
+ this.staleWhileRevalidate
|
|
31
|
+
> timestamp
|
|
32
|
+
) {
|
|
24
33
|
return [State.StaleWhileRevalidate, item.value]
|
|
25
|
-
} else if (
|
|
34
|
+
} else if (
|
|
35
|
+
item.updatedAt
|
|
36
|
+
+ this.timeToLive
|
|
37
|
+
+ this.staleWhileRevalidate
|
|
38
|
+
+ this.staleIfError
|
|
39
|
+
> timestamp
|
|
40
|
+
) {
|
|
26
41
|
return [State.StaleIfError, item.value]
|
|
27
42
|
} else {
|
|
28
43
|
// just in case
|
|
@@ -16,10 +16,22 @@ export class StaleWhileRevalidateDiskCache<T> implements IStaleWhileRevalidateCa
|
|
|
16
16
|
if (isUndefined(item)) {
|
|
17
17
|
return [State.Miss]
|
|
18
18
|
} else {
|
|
19
|
-
|
|
19
|
+
const timestamp = Date.now()
|
|
20
|
+
if (
|
|
21
|
+
item.updatedAt
|
|
22
|
+
+ this.timeToLive
|
|
23
|
+
> timestamp
|
|
24
|
+
) {
|
|
25
|
+
return [State.Hit, item.value]
|
|
26
|
+
} else if (
|
|
27
|
+
item.updatedAt
|
|
28
|
+
+ this.timeToLive
|
|
29
|
+
+ this.staleWhileRevalidate
|
|
30
|
+
> timestamp
|
|
31
|
+
) {
|
|
20
32
|
return [State.StaleWhileRevalidate, item.value]
|
|
21
33
|
} else {
|
|
22
|
-
return [State.
|
|
34
|
+
return [State.Miss]
|
|
23
35
|
}
|
|
24
36
|
}
|
|
25
37
|
}
|
|
@@ -31,10 +43,4 @@ export class StaleWhileRevalidateDiskCache<T> implements IStaleWhileRevalidateCa
|
|
|
31
43
|
, this.timeToLive + this.staleWhileRevalidate
|
|
32
44
|
)
|
|
33
45
|
}
|
|
34
|
-
|
|
35
|
-
private isStaleWhileRevalidate(updatedAt: number): boolean {
|
|
36
|
-
const timestamp = Date.now()
|
|
37
|
-
return updatedAt + this.timeToLive <= timestamp
|
|
38
|
-
&& updatedAt + this.timeToLive + this.staleWhileRevalidate > timestamp
|
|
39
|
-
}
|
|
40
46
|
}
|