@blackglory/cache-js 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/README.md +12 -7
- package/lib/{cache.d.ts → cache-client.d.ts} +11 -15
- package/lib/{cache.js → cache-client.js} +20 -32
- package/lib/cache-client.js.map +1 -0
- package/lib/contract.d.ts +13 -13
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +1 -2
- package/lib/cache.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,6 +9,11 @@ yarn add @blackglory/cache-js
|
|
|
9
9
|
## API
|
|
10
10
|
### CacheClient
|
|
11
11
|
```ts
|
|
12
|
+
interface IStats {
|
|
13
|
+
namespace: string
|
|
14
|
+
items: number
|
|
15
|
+
}
|
|
16
|
+
|
|
12
17
|
interface IMetadata {
|
|
13
18
|
updatedAt: number
|
|
14
19
|
timeToLive: number | null
|
|
@@ -29,30 +34,30 @@ class CacheClient {
|
|
|
29
34
|
getAllNamespaces(timeout?: number): Promise<string[]>
|
|
30
35
|
getAllItemKeys(namespace: string, timeout?: number): Promise<string[]>
|
|
31
36
|
|
|
32
|
-
hasItem(namespace: string,
|
|
37
|
+
hasItem(namespace: string, itemKey: string, timeout?: number): Promise<boolean>
|
|
33
38
|
|
|
34
|
-
getItem(namespace: string,
|
|
39
|
+
getItem(namespace: string, itemKey: string, timeout?: number): Promise<string | null>
|
|
35
40
|
|
|
36
|
-
getItemWithMetadata(namespace: string,
|
|
41
|
+
getItemWithMetadata(namespace: string, itemKey: string, timeout?: number): Promise<{
|
|
37
42
|
value: string
|
|
38
43
|
metadata: IMetadata
|
|
39
44
|
} | null>
|
|
40
45
|
|
|
41
46
|
getItems(
|
|
42
47
|
namespace: string
|
|
43
|
-
,
|
|
48
|
+
, itemKeys: string[]
|
|
44
49
|
, timeout?: number
|
|
45
50
|
): Promise<Array<string | null>>
|
|
46
51
|
|
|
47
52
|
setItem(
|
|
48
53
|
namespace: string
|
|
49
|
-
,
|
|
50
|
-
,
|
|
54
|
+
, itemKey: string
|
|
55
|
+
, itemValue: string
|
|
51
56
|
, timeToLive: number | null
|
|
52
57
|
, timeout?: number
|
|
53
58
|
): Promise<void>
|
|
54
59
|
|
|
55
|
-
removeItem(namespace: string,
|
|
60
|
+
removeItem(namespace: string, itemKey: string, timeout?: number): Promise<void>
|
|
56
61
|
|
|
57
62
|
clearItemsByNamespace(namespace: string, timeout?: number): Promise<void>
|
|
58
63
|
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { IStats } from './contract.js';
|
|
2
|
-
export { IStats } from './contract.js';
|
|
3
|
-
export interface IMetadata {
|
|
4
|
-
updatedAt: number;
|
|
5
|
-
timeToLive: number | null;
|
|
6
|
-
}
|
|
1
|
+
import { IStats, IMetadata } from './contract.js';
|
|
2
|
+
export { IStats, IMetadata } from './contract.js';
|
|
7
3
|
export interface ICacheClientOptions {
|
|
8
4
|
server: string;
|
|
9
5
|
timeout?: number;
|
|
@@ -15,21 +11,21 @@ export declare class CacheClient {
|
|
|
15
11
|
private batchProxy;
|
|
16
12
|
private closeClients;
|
|
17
13
|
private timeout?;
|
|
14
|
+
static create(options: ICacheClientOptions): Promise<CacheClient>;
|
|
15
|
+
private constructor();
|
|
16
|
+
close(): Promise<void>;
|
|
18
17
|
stats(namespace: string, timeout?: number): Promise<IStats>;
|
|
19
18
|
getAllNamespaces(timeout?: number): Promise<string[]>;
|
|
20
19
|
getAllItemKeys(namespace: string, timeout?: number): Promise<string[]>;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
hasItem(namespace: string, key: string, timeout?: number): Promise<boolean>;
|
|
25
|
-
getItem(namespace: string, key: string, timeout?: number): Promise<string | null>;
|
|
26
|
-
getItemWithMetadata(namespace: string, key: string, timeout?: number): Promise<{
|
|
20
|
+
hasItem(namespace: string, itemKey: string, timeout?: number): Promise<boolean>;
|
|
21
|
+
getItem(namespace: string, itemKey: string, timeout?: number): Promise<string | null>;
|
|
22
|
+
getItemWithMetadata(namespace: string, itemKey: string, timeout?: number): Promise<{
|
|
27
23
|
value: string;
|
|
28
24
|
metadata: IMetadata;
|
|
29
25
|
} | null>;
|
|
30
|
-
getItems(namespace: string,
|
|
31
|
-
setItem(namespace: string,
|
|
32
|
-
removeItem(namespace: string,
|
|
26
|
+
getItems(namespace: string, itemKeys: string[], timeout?: number): Promise<Array<string | null>>;
|
|
27
|
+
setItem(namespace: string, itemKey: string, itemValue: string, timeToLive: number | null, timeout?: number): Promise<void>;
|
|
28
|
+
removeItem(namespace: string, itemKey: string, timeout?: number): Promise<void>;
|
|
33
29
|
clearItemsByNamespace(namespace: string, timeout?: number): Promise<void>;
|
|
34
30
|
private withTimeout;
|
|
35
31
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createRPCClient } from "./utils/rpc-client.js";
|
|
2
2
|
import { timeoutSignal, withAbortSignal } from 'extra-abort';
|
|
3
|
-
import { isNull } from '@blackglory/prelude';
|
|
4
3
|
export class CacheClient {
|
|
5
4
|
constructor(client, batchClient, batchProxy, closeClients, timeout) {
|
|
6
5
|
this.client = client;
|
|
@@ -9,6 +8,13 @@ export class CacheClient {
|
|
|
9
8
|
this.closeClients = closeClients;
|
|
10
9
|
this.timeout = timeout;
|
|
11
10
|
}
|
|
11
|
+
static async create(options) {
|
|
12
|
+
const { client, batchClient, proxy, close } = await createRPCClient(options.server);
|
|
13
|
+
return new CacheClient(client, batchClient, proxy, close, options.timeout);
|
|
14
|
+
}
|
|
15
|
+
async close() {
|
|
16
|
+
await this.closeClients();
|
|
17
|
+
}
|
|
12
18
|
async stats(namespace, timeout) {
|
|
13
19
|
return await this.withTimeout(() => this.client.stats(namespace), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
14
20
|
}
|
|
@@ -18,44 +24,26 @@ export class CacheClient {
|
|
|
18
24
|
async getAllItemKeys(namespace, timeout) {
|
|
19
25
|
return await this.withTimeout(() => this.client.getAllItemKeys(namespace), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
20
26
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return new CacheClient(client, batchClient, proxy, close, options.timeout);
|
|
24
|
-
}
|
|
25
|
-
async close() {
|
|
26
|
-
await this.closeClients();
|
|
27
|
-
}
|
|
28
|
-
async hasItem(namespace, key, timeout) {
|
|
29
|
-
return await this.withTimeout(() => this.client.hasItem(namespace, key), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
27
|
+
async hasItem(namespace, itemKey, timeout) {
|
|
28
|
+
return await this.withTimeout(() => this.client.hasItem(namespace, itemKey), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
30
29
|
}
|
|
31
|
-
async getItem(namespace,
|
|
32
|
-
return await this.withTimeout(() => this.client.getItem(namespace,
|
|
30
|
+
async getItem(namespace, itemKey, timeout) {
|
|
31
|
+
return await this.withTimeout(() => this.client.getItem(namespace, itemKey), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
33
32
|
}
|
|
34
|
-
async getItemWithMetadata(namespace,
|
|
35
|
-
return await this.withTimeout(
|
|
36
|
-
const result = await this.client.getItemWithMetadata(namespace, key);
|
|
37
|
-
if (isNull(result))
|
|
38
|
-
return null;
|
|
39
|
-
return {
|
|
40
|
-
value: result.value,
|
|
41
|
-
metadata: {
|
|
42
|
-
updatedAt: result.metadata.updatedAt,
|
|
43
|
-
timeToLive: result.metadata.timeToLive
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}, timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
33
|
+
async getItemWithMetadata(namespace, itemKey, timeout) {
|
|
34
|
+
return await this.withTimeout(() => this.client.getItemWithMetadata(namespace, itemKey), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
47
35
|
}
|
|
48
|
-
async getItems(namespace,
|
|
36
|
+
async getItems(namespace, itemKeys, timeout) {
|
|
49
37
|
return await this.withTimeout(async () => {
|
|
50
|
-
const results = await this.batchClient.parallel(...
|
|
38
|
+
const results = await this.batchClient.parallel(...itemKeys.map(key => this.batchProxy.getItem(namespace, key)));
|
|
51
39
|
return results.map(result => result.unwrap());
|
|
52
40
|
}, timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
53
41
|
}
|
|
54
|
-
async setItem(namespace,
|
|
55
|
-
await this.withTimeout(() => this.client.setItem(namespace,
|
|
42
|
+
async setItem(namespace, itemKey, itemValue, timeToLive, timeout) {
|
|
43
|
+
await this.withTimeout(() => this.client.setItem(namespace, itemKey, itemValue, timeToLive), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
56
44
|
}
|
|
57
|
-
async removeItem(namespace,
|
|
58
|
-
await this.withTimeout(() => this.client.removeItem(namespace,
|
|
45
|
+
async removeItem(namespace, itemKey, timeout) {
|
|
46
|
+
await this.withTimeout(() => this.client.removeItem(namespace, itemKey), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
59
47
|
}
|
|
60
48
|
async clearItemsByNamespace(namespace, timeout) {
|
|
61
49
|
await this.withTimeout(() => this.client.clearItemsByNamespace(namespace), timeout !== null && timeout !== void 0 ? timeout : this.timeout);
|
|
@@ -69,4 +57,4 @@ export class CacheClient {
|
|
|
69
57
|
}
|
|
70
58
|
}
|
|
71
59
|
}
|
|
72
|
-
//# sourceMappingURL=cache.js.map
|
|
60
|
+
//# sourceMappingURL=cache-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-client.js","sourceRoot":"","sources":["../src/cache-client.ts"],"names":[],"mappings":"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"}
|
package/lib/contract.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
export declare const expectedVersion = "^0.8.0";
|
|
2
|
+
export interface IStats {
|
|
3
|
+
namespace: string;
|
|
4
|
+
items: number;
|
|
5
|
+
}
|
|
6
|
+
export interface IMetadata {
|
|
7
|
+
updatedAt: number;
|
|
8
|
+
timeToLive: number | null;
|
|
9
|
+
}
|
|
2
10
|
export interface IAPI {
|
|
3
11
|
stats(namespace: string): IStats;
|
|
4
12
|
getAllNamespaces(): string[];
|
|
5
13
|
getAllItemKeys(namespace: string): string[];
|
|
6
|
-
hasItem(namespace: string,
|
|
7
|
-
getItem(namespace: string,
|
|
8
|
-
getItemWithMetadata(namespace: string,
|
|
14
|
+
hasItem(namespace: string, itemKey: string): boolean;
|
|
15
|
+
getItem(namespace: string, itemKey: string): string | null;
|
|
16
|
+
getItemWithMetadata(namespace: string, itemKey: string): {
|
|
9
17
|
value: string;
|
|
10
18
|
metadata: IMetadata;
|
|
11
19
|
} | null;
|
|
12
|
-
setItem(namespace: string,
|
|
13
|
-
removeItem(namespace: string,
|
|
20
|
+
setItem(namespace: string, itemKey: string, itemValue: string, timeToLive: number | null): null;
|
|
21
|
+
removeItem(namespace: string, itemKey: string): null;
|
|
14
22
|
clearItemsByNamespace(namespace: string): null;
|
|
15
23
|
}
|
|
16
|
-
export interface IStats {
|
|
17
|
-
namespace: string;
|
|
18
|
-
items: number;
|
|
19
|
-
}
|
|
20
|
-
export interface IMetadata {
|
|
21
|
-
updatedAt: number;
|
|
22
|
-
timeToLive: number | null;
|
|
23
|
-
}
|
package/lib/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './cache.js';
|
|
1
|
+
export * from './cache-client.js';
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './cache.js';
|
|
1
|
+
export * from './cache-client.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blackglory/cache-js",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"files": [
|
|
@@ -54,7 +54,6 @@
|
|
|
54
54
|
"husky": "4",
|
|
55
55
|
"jest": "^29.4.1",
|
|
56
56
|
"jest-resolve": "^29.4.1",
|
|
57
|
-
"msw": "^1.0.0",
|
|
58
57
|
"npm-run-all": "^4.1.5",
|
|
59
58
|
"rimraf": "^3.0.2",
|
|
60
59
|
"standard-version": "^9.5.0",
|
package/lib/cache.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|