@zenweb/cache 4.2.1 → 4.2.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/CHANGELOG.md +3 -0
- package/dist/cache.d.ts +5 -5
- package/dist/cache.js +2 -2
- package/dist/middleware.js +6 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/cache.d.ts
CHANGED
|
@@ -34,10 +34,10 @@ export declare class Cache {
|
|
|
34
34
|
/**
|
|
35
35
|
* 缓存对象
|
|
36
36
|
* @param key 缓存key
|
|
37
|
-
* @param value
|
|
37
|
+
* @param value 缓存值,除了 `Buffer` 以外的值会经过 JSON 序列化
|
|
38
38
|
* @param ttlopt 缓存有效时长 (秒),不设置取默认设置 | 缓存选项
|
|
39
39
|
*/
|
|
40
|
-
set(key: string, value:
|
|
40
|
+
set(key: string, value: any, ttlopt?: number | SetOption): Promise<SetResult>;
|
|
41
41
|
/**
|
|
42
42
|
* 直接取得缓存
|
|
43
43
|
*/
|
|
@@ -46,7 +46,7 @@ export declare class Cache {
|
|
|
46
46
|
* 取得缓存对象
|
|
47
47
|
* @param key 缓存key
|
|
48
48
|
*/
|
|
49
|
-
get
|
|
49
|
+
get(key: string, opt: {
|
|
50
50
|
parse: false;
|
|
51
51
|
} & GetOption): Promise<CacheResult | undefined>;
|
|
52
52
|
get<T = unknown>(key: string, opt?: {
|
|
@@ -59,10 +59,10 @@ export declare class Cache {
|
|
|
59
59
|
* @param key 缓存KEY
|
|
60
60
|
* @param fetch 缓存设置方法回调
|
|
61
61
|
*/
|
|
62
|
-
lockGet<T
|
|
62
|
+
lockGet<T = unknown>(key: string, fetch: () => Promise<T> | T, _opt: {
|
|
63
63
|
parse: false;
|
|
64
64
|
} & LockGetOption): Promise<CacheResult>;
|
|
65
|
-
lockGet<T
|
|
65
|
+
lockGet<T = unknown>(key: string, fetch: () => Promise<T> | T, _opt?: {
|
|
66
66
|
parse?: true;
|
|
67
67
|
} & LockGetOption): Promise<T>;
|
|
68
68
|
/**
|
package/dist/cache.js
CHANGED
|
@@ -54,13 +54,13 @@ class Cache {
|
|
|
54
54
|
/**
|
|
55
55
|
* 缓存对象
|
|
56
56
|
* @param key 缓存key
|
|
57
|
-
* @param value
|
|
57
|
+
* @param value 缓存值,除了 `Buffer` 以外的值会经过 JSON 序列化
|
|
58
58
|
* @param ttlopt 缓存有效时长 (秒),不设置取默认设置 | 缓存选项
|
|
59
59
|
*/
|
|
60
60
|
async set(key, value, ttlopt) {
|
|
61
61
|
var _a;
|
|
62
62
|
let compressed;
|
|
63
|
-
let data = Buffer.isBuffer(value) ? value :
|
|
63
|
+
let data = Buffer.isBuffer(value) ? value : JSON.stringify(value);
|
|
64
64
|
const opt = Object.assign({
|
|
65
65
|
ttl: 60,
|
|
66
66
|
compressMinLength: 1024,
|
package/dist/middleware.js
CHANGED
|
@@ -19,14 +19,15 @@ function cached(key, opt) {
|
|
|
19
19
|
const decompress = ctx.acceptsEncodings('gzip') === false;
|
|
20
20
|
const _opt = Object.assign({
|
|
21
21
|
type: 'json'
|
|
22
|
-
}, opt
|
|
22
|
+
}, opt);
|
|
23
|
+
const result = await ctx.core.cache2.lockGet(_key, async function () {
|
|
24
|
+
await next();
|
|
25
|
+
return Buffer.isBuffer(ctx.body) ? ctx.body : Buffer.from(ctx.body);
|
|
26
|
+
}, {
|
|
27
|
+
..._opt,
|
|
23
28
|
parse: false,
|
|
24
29
|
decompress,
|
|
25
30
|
});
|
|
26
|
-
const result = await ctx.core.cache2.lockGet(_key, async function () {
|
|
27
|
-
await next();
|
|
28
|
-
return ctx.body;
|
|
29
|
-
}, _opt);
|
|
30
31
|
if (result.compressed) {
|
|
31
32
|
ctx.set('Content-Encoding', 'gzip');
|
|
32
33
|
}
|