extra-disk-store 0.3.0 → 0.3.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 +2 -2
- package/lib/converters/zstandard-value-converter.js +3 -4
- package/lib/converters/zstandard-value-converter.js.map +1 -1
- package/lib/disk-store-with-cache.d.ts +2 -7
- package/lib/disk-store-with-cache.js +30 -25
- package/lib/disk-store-with-cache.js.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -38,8 +38,8 @@ class DiskStore {
|
|
|
38
38
|
### DiskStoreWithCache
|
|
39
39
|
```ts
|
|
40
40
|
interface ICache {
|
|
41
|
-
set(key: string, value: Buffer |
|
|
42
|
-
get(key: string): Buffer |
|
|
41
|
+
set(key: string, value: Buffer | false): void
|
|
42
|
+
get(key: string): Buffer | false | undefined
|
|
43
43
|
delete(key: string): void
|
|
44
44
|
clear(): void
|
|
45
45
|
}
|
|
@@ -24,22 +24,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.ZstandardValueConverter = void 0;
|
|
27
|
-
const zstd = __importStar(require("@
|
|
27
|
+
const zstd = __importStar(require("@mongodb-js/zstd"));
|
|
28
28
|
class ZstandardValueConverter {
|
|
29
29
|
constructor(valueConverter, level) {
|
|
30
30
|
this.valueConverter = valueConverter;
|
|
31
31
|
this.level = level;
|
|
32
32
|
}
|
|
33
33
|
static async create(valueConverter, level) {
|
|
34
|
-
await zstd.init();
|
|
35
34
|
return new ZstandardValueConverter(valueConverter, level);
|
|
36
35
|
}
|
|
37
36
|
async toBuffer(value) {
|
|
38
37
|
const buffer = await this.valueConverter.toBuffer(value);
|
|
39
|
-
return Buffer.from(zstd.compress(buffer, this.level));
|
|
38
|
+
return Buffer.from(await zstd.compress(buffer, this.level));
|
|
40
39
|
}
|
|
41
40
|
async fromBuffer(value) {
|
|
42
|
-
const buffer = Buffer.from(zstd.decompress(value));
|
|
41
|
+
const buffer = Buffer.from(await zstd.decompress(value));
|
|
43
42
|
return await this.valueConverter.fromBuffer(buffer);
|
|
44
43
|
}
|
|
45
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zstandard-value-converter.js","sourceRoot":"","sources":["../../src/converters/zstandard-value-converter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"zstandard-value-converter.js","sourceRoot":"","sources":["../../src/converters/zstandard-value-converter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAwC;AAGxC,MAAa,uBAAuB;IAClC,YACU,cAAkC,EAClC,KAAa;QADb,mBAAc,GAAd,cAAc,CAAoB;QAClC,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,cAAkC,EAClC,KAAa;QAEb,OAAO,IAAI,uBAAuB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAQ;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACxD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;CACF;AAtBD,0DAsBC"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DiskStore } from './disk-store';
|
|
3
3
|
export interface ICache {
|
|
4
|
-
set(key: string, value: Buffer |
|
|
5
|
-
get(key: string): Buffer |
|
|
4
|
+
set(key: string, value: Buffer | false): void;
|
|
5
|
+
get(key: string): Buffer | false | undefined;
|
|
6
6
|
delete(key: string): void;
|
|
7
7
|
clear(): void;
|
|
8
8
|
}
|
|
9
|
-
export declare enum CacheKeyType {
|
|
10
|
-
Exist = 0,
|
|
11
|
-
Value = 1
|
|
12
|
-
}
|
|
13
9
|
export declare class DiskStoreWithCache {
|
|
14
10
|
private store;
|
|
15
11
|
private cache;
|
|
@@ -22,4 +18,3 @@ export declare class DiskStoreWithCache {
|
|
|
22
18
|
clear(): Promise<void>;
|
|
23
19
|
keys(): IterableIterator<string>;
|
|
24
20
|
}
|
|
25
|
-
export declare function createCacheKey(type: CacheKeyType, key: string): string;
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DiskStoreWithCache = void 0;
|
|
4
4
|
const prelude_1 = require("@blackglory/prelude");
|
|
5
|
-
var CacheKeyType;
|
|
6
|
-
(function (CacheKeyType) {
|
|
7
|
-
CacheKeyType[CacheKeyType["Exist"] = 0] = "Exist";
|
|
8
|
-
CacheKeyType[CacheKeyType["Value"] = 1] = "Value";
|
|
9
|
-
})(CacheKeyType = exports.CacheKeyType || (exports.CacheKeyType = {}));
|
|
10
5
|
class DiskStoreWithCache {
|
|
11
6
|
constructor(store, cache) {
|
|
12
7
|
this.store = store;
|
|
@@ -16,38 +11,52 @@ class DiskStoreWithCache {
|
|
|
16
11
|
await this.store.close();
|
|
17
12
|
}
|
|
18
13
|
has(key) {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
if ((0, prelude_1.isBoolean)(result)) {
|
|
14
|
+
const result = this.cache.get(key);
|
|
15
|
+
if (result === false) {
|
|
22
16
|
return result;
|
|
23
17
|
}
|
|
18
|
+
else if ((0, prelude_1.isntUndefined)(result)) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
24
21
|
else {
|
|
25
|
-
const result = this.store.
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
const result = this.store.get(key);
|
|
23
|
+
if (result) {
|
|
24
|
+
this.cache.set(key, result);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.cache.set(key, false);
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
28
31
|
}
|
|
29
32
|
}
|
|
30
33
|
get(key) {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
const result = this.cache.get(key);
|
|
35
|
+
if (result === false) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
else if ((0, prelude_1.isntUndefined)(result)) {
|
|
34
39
|
return result;
|
|
35
40
|
}
|
|
36
41
|
else {
|
|
37
42
|
const result = this.store.get(key);
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
if (result) {
|
|
44
|
+
this.cache.set(key, result);
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.cache.set(key, false);
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
40
51
|
}
|
|
41
52
|
}
|
|
42
53
|
async set(key, value) {
|
|
43
|
-
var _a;
|
|
44
54
|
await this.store.set(key, value);
|
|
45
|
-
|
|
55
|
+
this.cache.delete(key);
|
|
46
56
|
}
|
|
47
57
|
async delete(key) {
|
|
48
58
|
await this.store.delete(key);
|
|
49
|
-
this.cache.delete(
|
|
50
|
-
this.cache.delete(createCacheKey(CacheKeyType.Value, key));
|
|
59
|
+
this.cache.delete(key);
|
|
51
60
|
}
|
|
52
61
|
async clear() {
|
|
53
62
|
await this.store.clear();
|
|
@@ -58,8 +67,4 @@ class DiskStoreWithCache {
|
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
69
|
exports.DiskStoreWithCache = DiskStoreWithCache;
|
|
61
|
-
function createCacheKey(type, key) {
|
|
62
|
-
return JSON.stringify([type, key]);
|
|
63
|
-
}
|
|
64
|
-
exports.createCacheKey = createCacheKey;
|
|
65
70
|
//# sourceMappingURL=disk-store-with-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk-store-with-cache.js","sourceRoot":"","sources":["../src/disk-store-with-cache.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"disk-store-with-cache.js","sourceRoot":"","sources":["../src/disk-store-with-cache.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AAUnD,MAAa,kBAAkB;IAC7B,YACU,KAAgB,EAChB,KAAa;QADb,UAAK,GAAL,KAAK,CAAW;QAChB,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,OAAO,MAAM,CAAA;SACd;aAAM,IAAI,IAAA,uBAAa,EAAC,MAAM,CAAC,EAAE;YAChC,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC3B,OAAO,IAAI,CAAA;aACZ;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC1B,OAAO,KAAK,CAAA;aACb;SACF;IACH,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,OAAO,SAAS,CAAA;SACjB;aAAM,IAAI,IAAA,uBAAa,EAAC,MAAM,CAAC,EAAE;YAChC,OAAO,MAAM,CAAA;SACd;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC3B,OAAO,MAAM,CAAA;aACd;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC1B,OAAO,MAAM,CAAA;aACd;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAEhC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAE5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAExB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAnED,gDAmEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "extra-disk-store",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"files": [
|
|
@@ -36,7 +36,6 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@blackglory/jest-matchers": "^0.5.0",
|
|
40
39
|
"@blackglory/structures": "^0.11.5",
|
|
41
40
|
"@commitlint/cli": "^17.3.0",
|
|
42
41
|
"@commitlint/config-conventional": "^17.3.0",
|
|
@@ -60,7 +59,7 @@
|
|
|
60
59
|
},
|
|
61
60
|
"dependencies": {
|
|
62
61
|
"@blackglory/prelude": "^0.1.8",
|
|
63
|
-
"@
|
|
62
|
+
"@mongodb-js/zstd": "^1.0.0",
|
|
64
63
|
"extra-benchmark": "^0.2.2",
|
|
65
64
|
"extra-filesystem": "^0.4.8",
|
|
66
65
|
"extra-promise": "^4.4.0",
|