extra-disk-store 0.5.1 → 0.7.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.
- package/README.md +94 -45
- package/lib/converters/lz4-value-converter.d.ts +7 -1
- package/lib/converters/lz4-value-converter.js +13 -0
- package/lib/converters/lz4-value-converter.js.map +1 -1
- package/lib/converters/prefix-key-converter.d.ts +9 -2
- package/lib/converters/prefix-key-converter.js +19 -0
- package/lib/converters/prefix-key-converter.js.map +1 -1
- package/lib/converters/zstandard-value-converter.d.ts +3 -3
- package/lib/converters/zstandard-value-converter.js +1 -1
- package/lib/converters/zstandard-value-converter.js.map +1 -1
- package/lib/disk-store-async-view.d.ts +15 -0
- package/lib/disk-store-async-view.js +38 -0
- package/lib/disk-store-async-view.js.map +1 -0
- package/lib/disk-store-view.d.ts +7 -16
- package/lib/disk-store-view.js +12 -15
- package/lib/disk-store-view.js.map +1 -1
- package/lib/disk-store-with-cache.d.ts +4 -4
- package/lib/disk-store-with-cache.js +8 -8
- package/lib/disk-store-with-cache.js.map +1 -1
- package/lib/disk-store.d.ts +11 -12
- package/lib/disk-store.js +83 -36
- package/lib/disk-store.js.map +1 -1
- package/lib/index.d.ts +4 -2
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +9 -7
- package/migrations/001-initial.sql +19 -0
- package/migrations/schema.sql +7 -0
- package/package.json +34 -34
- package/src/converters/lz4-value-converter.ts +17 -1
- package/src/converters/prefix-key-converter.ts +23 -2
- package/src/converters/zstandard-value-converter.ts +3 -3
- package/src/disk-store-async-view.ts +53 -0
- package/src/disk-store-view.ts +18 -29
- package/src/disk-store-with-cache.ts +8 -8
- package/src/disk-store.ts +93 -42
- package/src/index.ts +4 -2
- package/src/types.ts +10 -7
package/README.md
CHANGED
|
@@ -8,35 +8,28 @@ npm install --save extra-disk-store
|
|
|
8
8
|
yarn add extra-disk-store
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
## Limitations
|
|
12
|
-
This library uses [lmdb] as the storage layer for performance reasons.
|
|
13
|
-
Unfortunately, lmdb only supports keys of limited size (1978 bytes),
|
|
14
|
-
so make sure you only use this library for scenarios with limited key size.
|
|
15
|
-
|
|
16
|
-
[lmdb]: https://www.npmjs.org/package/lmdb
|
|
17
|
-
|
|
18
11
|
## Usage
|
|
19
12
|
```ts
|
|
20
13
|
import { DiskStore } from 'extra-disk-store'
|
|
21
14
|
|
|
22
|
-
const store =
|
|
15
|
+
const store = await DiskStore.create('/tmp/store')
|
|
23
16
|
await store.set('key', Buffer.from('value'))
|
|
24
|
-
const value = store.get('key')
|
|
17
|
+
const value = store.get('key')?.toString()
|
|
25
18
|
```
|
|
26
19
|
|
|
27
20
|
## API
|
|
28
21
|
### DiskStore
|
|
29
22
|
```ts
|
|
30
23
|
class DiskStore {
|
|
31
|
-
|
|
24
|
+
static create(filename?: string): Promise<DiskStore>
|
|
32
25
|
|
|
33
|
-
close():
|
|
26
|
+
close(): void
|
|
34
27
|
|
|
35
28
|
has(key: string): boolean
|
|
36
29
|
get(key: string): Buffer | undefined
|
|
37
|
-
set(key: string, value: Buffer):
|
|
38
|
-
delete(key: string):
|
|
39
|
-
clear():
|
|
30
|
+
set(key: string, value: Buffer): void
|
|
31
|
+
delete(key: string): void
|
|
32
|
+
clear(): void
|
|
40
33
|
|
|
41
34
|
keys(): IterableIterator<string>
|
|
42
35
|
}
|
|
@@ -52,18 +45,15 @@ interface ICache {
|
|
|
52
45
|
}
|
|
53
46
|
|
|
54
47
|
class DiskStoreWithCache {
|
|
55
|
-
constructor(
|
|
56
|
-
store: DiskStore
|
|
57
|
-
, cache: ICache
|
|
58
|
-
)
|
|
48
|
+
constructor(store: DiskStore, cache: ICache)
|
|
59
49
|
|
|
60
|
-
close():
|
|
50
|
+
close(): void
|
|
61
51
|
|
|
62
52
|
has(key: string): boolean
|
|
63
53
|
get(key: string): Buffer | undefined
|
|
64
|
-
set(key: string, value: Buffer):
|
|
65
|
-
delete(key: string):
|
|
66
|
-
clear():
|
|
54
|
+
set(key: string, value: Buffer): void
|
|
55
|
+
delete(key: string): void
|
|
56
|
+
clear(): void
|
|
67
57
|
|
|
68
58
|
keys(): IterableIterator<string>
|
|
69
59
|
}
|
|
@@ -72,13 +62,13 @@ class DiskStoreWithCache {
|
|
|
72
62
|
### DiskStoreView
|
|
73
63
|
```ts
|
|
74
64
|
interface IKeyConverter<T> {
|
|
75
|
-
toString: (value: T) =>
|
|
76
|
-
fromString: (value: string) =>
|
|
65
|
+
toString: (value: T) => string
|
|
66
|
+
fromString: (value: string) => T | undefined
|
|
77
67
|
}
|
|
78
68
|
|
|
79
69
|
interface IValueConverter<T> {
|
|
80
|
-
toBuffer: (value: T) =>
|
|
81
|
-
fromBuffer: (value: Buffer) =>
|
|
70
|
+
toBuffer: (value: T) => Buffer
|
|
71
|
+
fromBuffer: (value: Buffer) => T
|
|
82
72
|
}
|
|
83
73
|
|
|
84
74
|
class DiskStoreView<K, V> {
|
|
@@ -88,48 +78,94 @@ class DiskStoreView<K, V> {
|
|
|
88
78
|
, valueConverter: IValueConverter<V>
|
|
89
79
|
) {}
|
|
90
80
|
|
|
81
|
+
has(key: K): boolean
|
|
82
|
+
get(key: K): V | undefined
|
|
83
|
+
|
|
84
|
+
set(key: K, value: V): void
|
|
85
|
+
|
|
86
|
+
delete(key: K): void
|
|
87
|
+
clear(): void
|
|
88
|
+
|
|
89
|
+
keys(): IterableIterator<K>
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### DiskStoreAsyncView
|
|
94
|
+
```ts
|
|
95
|
+
interface IKeyAsyncConverter<T> {
|
|
96
|
+
toString: (value: T) => Awaitable<string>
|
|
97
|
+
fromString: (value: string) => Awaitable<T | undefined>
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
interface IValueAsyncConverter<T> {
|
|
101
|
+
toBuffer: (value: T) => Awaitable<Buffer>
|
|
102
|
+
fromBuffer: (value: Buffer) => Awaitable<T>
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
class DiskStoreAsyncView<K, V> {
|
|
106
|
+
constructor(
|
|
107
|
+
store: DiskStore | DiskStoreWithCache
|
|
108
|
+
, keyConverter: IKeyAsyncConverter<K>
|
|
109
|
+
, valueConverter: IValueAsyncConverter<V>
|
|
110
|
+
) {}
|
|
111
|
+
|
|
91
112
|
has(key: K): Promise<boolean>
|
|
92
113
|
get(key: K): Promise<V | undefined>
|
|
114
|
+
|
|
93
115
|
set(key: K, value: V): Promise<void>
|
|
116
|
+
|
|
94
117
|
delete(key: K): Promise<void>
|
|
95
|
-
clear():
|
|
118
|
+
clear(): void
|
|
96
119
|
|
|
97
|
-
keys():
|
|
120
|
+
keys(): AsyncIterableIterator<K>
|
|
98
121
|
}
|
|
99
122
|
```
|
|
100
123
|
|
|
101
124
|
### Converters
|
|
102
|
-
####
|
|
125
|
+
#### PassthroughKeyConverter
|
|
103
126
|
```ts
|
|
104
|
-
class
|
|
127
|
+
class PassthroughKeyConverter implements IKeyConverter<string>
|
|
105
128
|
```
|
|
106
129
|
|
|
107
|
-
####
|
|
130
|
+
#### PassthroughValueConverter
|
|
108
131
|
```ts
|
|
109
|
-
class
|
|
132
|
+
class PassthroughValueConverter implements IValueConverter<Buffer>
|
|
110
133
|
```
|
|
111
134
|
|
|
112
|
-
####
|
|
135
|
+
#### IndexKeyConverter
|
|
113
136
|
```ts
|
|
114
|
-
class
|
|
115
|
-
|
|
137
|
+
class IndexKeyConverter implements IKeyConverter<number>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### PrefixKeyConverter
|
|
141
|
+
```ts
|
|
142
|
+
class PrefixKeyConverter<T> implements IKeyConverter<T> {
|
|
143
|
+
constructor(keyConverter: IKeyConverter<T>, prefix: string)
|
|
116
144
|
}
|
|
117
145
|
```
|
|
118
146
|
|
|
119
|
-
####
|
|
147
|
+
#### PrefixKeyAsyncConverter
|
|
120
148
|
```ts
|
|
121
|
-
class
|
|
149
|
+
class PrefixKeyAsyncConverter<T> implements IKeyAsyncConverter<T> {
|
|
150
|
+
constructor(
|
|
151
|
+
keyConverter: IKeyConverter<T> | IKeyAsyncConverter<T>
|
|
152
|
+
, prefix: string
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
toString(value: T): Promise<string>
|
|
156
|
+
fromString(value: string): Promise<T | undefined>
|
|
157
|
+
}
|
|
122
158
|
```
|
|
123
159
|
|
|
124
|
-
####
|
|
160
|
+
#### JSONKeyConverter
|
|
125
161
|
```ts
|
|
126
|
-
class
|
|
162
|
+
class JSONKeyConverter<T> implements IKeyConverter<T>
|
|
127
163
|
```
|
|
128
164
|
|
|
129
|
-
####
|
|
165
|
+
#### JSONValueConverter
|
|
130
166
|
```ts
|
|
131
|
-
class
|
|
132
|
-
constructor(
|
|
167
|
+
class JSONValueConverter<T> implements IValueConverter<T> {
|
|
168
|
+
constructor(encoding: BufferEncoding = 'utf-8')
|
|
133
169
|
}
|
|
134
170
|
```
|
|
135
171
|
|
|
@@ -140,12 +176,25 @@ class LZ4ValueConverter<T> implements IValueConverter<T> {
|
|
|
140
176
|
}
|
|
141
177
|
```
|
|
142
178
|
|
|
143
|
-
####
|
|
179
|
+
#### LZ4ValueAsyncConverter
|
|
144
180
|
```ts
|
|
145
|
-
class
|
|
181
|
+
class LZ4ValueAsyncConverter<T> implements IValueAsyncConverter<T> {
|
|
182
|
+
constructor(valueConverter: IValueConverter<T> | IValueAsyncConverter<T>)
|
|
183
|
+
|
|
184
|
+
toBuffer(value: T): Promise<Buffer>
|
|
185
|
+
fromBuffer(value: Buffer): Promise<T>
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### ZstandardValueAsyncConverter
|
|
190
|
+
```ts
|
|
191
|
+
class ZstandardValueAsyncConverter<T> implements IValueAsyncConverter<T> {
|
|
146
192
|
constructor(
|
|
147
|
-
valueConverter: IValueConverter<T>
|
|
193
|
+
valueConverter: IValueConverter<T> | IValueAsyncConverter<T>
|
|
148
194
|
, level: number
|
|
149
195
|
)
|
|
196
|
+
|
|
197
|
+
toBuffer(value: T): Promise<Buffer>
|
|
198
|
+
fromBuffer(value: Buffer): Promise<T>
|
|
150
199
|
}
|
|
151
200
|
```
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { IValueConverter } from "../types.js";
|
|
2
|
+
import { IValueConverter, IValueAsyncConverter } from "../types.js";
|
|
3
3
|
export declare class LZ4ValueConverter<T> implements IValueConverter<T> {
|
|
4
4
|
private valueConverter;
|
|
5
5
|
constructor(valueConverter: IValueConverter<T>);
|
|
6
|
+
toBuffer(value: T): Buffer;
|
|
7
|
+
fromBuffer(value: Buffer): T;
|
|
8
|
+
}
|
|
9
|
+
export declare class LZ4ValueAsyncConverter<T> implements IValueAsyncConverter<T> {
|
|
10
|
+
private valueConverter;
|
|
11
|
+
constructor(valueConverter: IValueConverter<T> | IValueAsyncConverter<T>);
|
|
6
12
|
toBuffer(value: T): Promise<Buffer>;
|
|
7
13
|
fromBuffer(value: Buffer): Promise<T>;
|
|
8
14
|
}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import * as lz4 from 'lz4-wasm-nodejs';
|
|
2
2
|
export class LZ4ValueConverter {
|
|
3
|
+
constructor(valueConverter) {
|
|
4
|
+
this.valueConverter = valueConverter;
|
|
5
|
+
}
|
|
6
|
+
toBuffer(value) {
|
|
7
|
+
const buffer = this.valueConverter.toBuffer(value);
|
|
8
|
+
return Buffer.from(lz4.compress(buffer));
|
|
9
|
+
}
|
|
10
|
+
fromBuffer(value) {
|
|
11
|
+
const buffer = Buffer.from(lz4.decompress(value));
|
|
12
|
+
return this.valueConverter.fromBuffer(buffer);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class LZ4ValueAsyncConverter {
|
|
3
16
|
constructor(valueConverter) {
|
|
4
17
|
this.valueConverter = valueConverter;
|
|
5
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lz4-value-converter.js","sourceRoot":"","sources":["../../src/converters/lz4-value-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAGtC,MAAM,OAAO,iBAAiB;IAC5B,YACU,cAAkC;QAAlC,mBAAc,GAAd,cAAc,CAAoB;IACzC,CAAC;IAEJ,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,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACjD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"lz4-value-converter.js","sourceRoot":"","sources":["../../src/converters/lz4-value-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAGtC,MAAM,OAAO,iBAAiB;IAC5B,YACU,cAAkC;QAAlC,mBAAc,GAAd,cAAc,CAAoB;IACzC,CAAC;IAEJ,QAAQ,CAAC,KAAQ;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAClD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,sBAAsB;IACjC,YACU,cAA4D;QAA5D,mBAAc,GAAd,cAAc,CAA8C;IACnE,CAAC;IAEJ,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,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACjD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;CACF"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import { IKeyConverter } from "../types.js";
|
|
2
|
-
export declare class PrefixKeyConverter<T> implements IKeyConverter<T> {
|
|
1
|
+
import { IKeyConverter, IKeyAsyncConverter } from "../types.js";
|
|
2
|
+
export declare class PrefixKeyConverter<T> implements IKeyConverter<T>, IKeyAsyncConverter<T> {
|
|
3
3
|
private keyConverter;
|
|
4
4
|
private prefix;
|
|
5
5
|
constructor(keyConverter: IKeyConverter<T>, prefix: string);
|
|
6
|
+
toString(value: T): string;
|
|
7
|
+
fromString(value: string): T | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare class PrefixKeyAsyncConverter<T> implements IKeyAsyncConverter<T> {
|
|
10
|
+
private keyConverter;
|
|
11
|
+
private prefix;
|
|
12
|
+
constructor(keyConverter: IKeyConverter<T> | IKeyAsyncConverter<T>, prefix: string);
|
|
6
13
|
toString(value: T): Promise<string>;
|
|
7
14
|
fromString(value: string): Promise<T | undefined>;
|
|
8
15
|
}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
export class PrefixKeyConverter {
|
|
2
|
+
constructor(keyConverter, prefix) {
|
|
3
|
+
this.keyConverter = keyConverter;
|
|
4
|
+
this.prefix = prefix;
|
|
5
|
+
}
|
|
6
|
+
toString(value) {
|
|
7
|
+
const key = this.keyConverter.toString(value);
|
|
8
|
+
return this.prefix + key;
|
|
9
|
+
}
|
|
10
|
+
fromString(value) {
|
|
11
|
+
if (value.startsWith(this.prefix)) {
|
|
12
|
+
const key = this.keyConverter.fromString(value.slice(this.prefix.length));
|
|
13
|
+
return key;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class PrefixKeyAsyncConverter {
|
|
2
21
|
constructor(keyConverter, prefix) {
|
|
3
22
|
this.keyConverter = keyConverter;
|
|
4
23
|
this.prefix = prefix;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefix-key-converter.js","sourceRoot":"","sources":["../../src/converters/prefix-key-converter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IAC7B,YACU,YAA8B,EAC9B,MAAc;QADd,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,KAAQ;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACnD,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"prefix-key-converter.js","sourceRoot":"","sources":["../../src/converters/prefix-key-converter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IAC7B,YACU,YAA8B,EAC9B,MAAc;QADd,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEJ,QAAQ,CAAC,KAAQ;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IAC1B,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YACzE,OAAO,GAAG,CAAA;QACZ,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,uBAAuB;IAClC,YACU,YAAsD,EACtD,MAAc;QADd,iBAAY,GAAZ,YAAY,CAA0C;QACtD,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,KAAQ;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACnD,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAC/E,OAAO,GAAG,CAAA;QACZ,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { IValueConverter } from "../types.js";
|
|
3
|
-
export declare class
|
|
2
|
+
import { IValueConverter, IValueAsyncConverter } from "../types.js";
|
|
3
|
+
export declare class ZstandardValueAsyncConverter<T> implements IValueAsyncConverter<T> {
|
|
4
4
|
private valueConverter;
|
|
5
5
|
private level;
|
|
6
|
-
constructor(valueConverter: IValueConverter<T>, level: number);
|
|
6
|
+
constructor(valueConverter: IValueConverter<T> | IValueAsyncConverter<T>, level: number);
|
|
7
7
|
toBuffer(value: T): Promise<Buffer>;
|
|
8
8
|
fromBuffer(value: Buffer): Promise<T>;
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zstandard-value-converter.js","sourceRoot":"","sources":["../../src/converters/zstandard-value-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AAGxC,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"zstandard-value-converter.js","sourceRoot":"","sources":["../../src/converters/zstandard-value-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AAGxC,MAAM,OAAO,4BAA4B;IACvC,YACU,cAA4D,EAC5D,KAAa;QADb,mBAAc,GAAd,cAAc,CAA8C;QAC5D,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEJ,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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DiskStore } from "./disk-store.js";
|
|
2
|
+
import { DiskStoreWithCache } from "./disk-store-with-cache.js";
|
|
3
|
+
import { IKeyAsyncConverter, IValueAsyncConverter } from './types.js';
|
|
4
|
+
export declare class DiskStoreAsyncView<K, V> {
|
|
5
|
+
private store;
|
|
6
|
+
private keyConverter;
|
|
7
|
+
private valueConverter;
|
|
8
|
+
constructor(store: DiskStore | DiskStoreWithCache, keyConverter: IKeyAsyncConverter<K>, valueConverter: IValueAsyncConverter<V>);
|
|
9
|
+
has(key: K): Promise<boolean>;
|
|
10
|
+
get(key: K): Promise<V | undefined>;
|
|
11
|
+
set(key: K, value: V): Promise<void>;
|
|
12
|
+
delete(key: K): Promise<void>;
|
|
13
|
+
clear(): void;
|
|
14
|
+
keys(): AsyncIterableIterator<K>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { pipe } from 'extra-utils';
|
|
2
|
+
import { mapAsync, filterAsync } from 'iterable-operator';
|
|
3
|
+
import { isntUndefined } from '@blackglory/prelude';
|
|
4
|
+
export class DiskStoreAsyncView {
|
|
5
|
+
constructor(store, keyConverter, valueConverter) {
|
|
6
|
+
this.store = store;
|
|
7
|
+
this.keyConverter = keyConverter;
|
|
8
|
+
this.valueConverter = valueConverter;
|
|
9
|
+
}
|
|
10
|
+
async has(key) {
|
|
11
|
+
return this.store.has(await this.keyConverter.toString(key));
|
|
12
|
+
}
|
|
13
|
+
async get(key) {
|
|
14
|
+
const buffer = this.store.get(await this.keyConverter.toString(key));
|
|
15
|
+
if (buffer) {
|
|
16
|
+
return this.valueConverter.fromBuffer(buffer);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async set(key, value) {
|
|
23
|
+
this.store.set(...await Promise.all([
|
|
24
|
+
await this.keyConverter.toString(key),
|
|
25
|
+
await this.valueConverter.toBuffer(value)
|
|
26
|
+
]));
|
|
27
|
+
}
|
|
28
|
+
async delete(key) {
|
|
29
|
+
this.store.delete(await this.keyConverter.toString(key));
|
|
30
|
+
}
|
|
31
|
+
clear() {
|
|
32
|
+
this.store.clear();
|
|
33
|
+
}
|
|
34
|
+
keys() {
|
|
35
|
+
return pipe(this.store.keys(), iter => mapAsync(iter, key => this.keyConverter.fromString(key)), iter => filterAsync(iter, isntUndefined));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=disk-store-async-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disk-store-async-view.js","sourceRoot":"","sources":["../src/disk-store-async-view.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,MAAM,OAAO,kBAAkB;IAC7B,YACU,KAAqC,EACrC,YAAmC,EACnC,cAAuC;QAFvC,UAAK,GAAL,KAAK,CAAgC;QACrC,iBAAY,GAAZ,YAAY,CAAuB;QACnC,mBAAc,GAAd,cAAc,CAAyB;IAC9C,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAM;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAM;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAM,EAAE,KAAQ;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnB,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC1C,CAAC,CACH,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAM;QACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CACT,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAChE,IAAI,CAAC,EAAE,CAAC,WAAW,CAA8C,IAAI,EAAE,aAAa,CAAC,CACtF,CAAA;IACH,CAAC;CACF"}
|
package/lib/disk-store-view.d.ts
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { DiskStore } from "./disk-store.js";
|
|
3
2
|
import { DiskStoreWithCache } from "./disk-store-with-cache.js";
|
|
4
|
-
import {
|
|
5
|
-
export interface IKeyConverter<T> {
|
|
6
|
-
toString: (value: T) => Awaitable<string>;
|
|
7
|
-
fromString: (value: string) => Awaitable<T | undefined>;
|
|
8
|
-
}
|
|
9
|
-
export interface IValueConverter<T> {
|
|
10
|
-
toBuffer: (value: T) => Awaitable<Buffer>;
|
|
11
|
-
fromBuffer: (value: Buffer) => Awaitable<T>;
|
|
12
|
-
}
|
|
3
|
+
import { IKeyConverter, IValueConverter } from './types.js';
|
|
13
4
|
export declare class DiskStoreView<K, V> {
|
|
14
5
|
private store;
|
|
15
6
|
private keyConverter;
|
|
16
7
|
private valueConverter;
|
|
17
8
|
constructor(store: DiskStore | DiskStoreWithCache, keyConverter: IKeyConverter<K>, valueConverter: IValueConverter<V>);
|
|
18
|
-
has(key: K):
|
|
19
|
-
get(key: K):
|
|
20
|
-
set(key: K, value: V):
|
|
21
|
-
delete(key: K):
|
|
22
|
-
clear():
|
|
23
|
-
keys():
|
|
9
|
+
has(key: K): boolean;
|
|
10
|
+
get(key: K): V | undefined;
|
|
11
|
+
set(key: K, value: V): void;
|
|
12
|
+
delete(key: K): void;
|
|
13
|
+
clear(): void;
|
|
14
|
+
keys(): IterableIterator<K>;
|
|
24
15
|
}
|
package/lib/disk-store-view.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { pipe } from 'extra-utils';
|
|
2
|
-
import {
|
|
2
|
+
import { map, filter } from 'iterable-operator';
|
|
3
3
|
import { isntUndefined } from '@blackglory/prelude';
|
|
4
4
|
export class DiskStoreView {
|
|
5
5
|
constructor(store, keyConverter, valueConverter) {
|
|
@@ -7,11 +7,11 @@ export class DiskStoreView {
|
|
|
7
7
|
this.keyConverter = keyConverter;
|
|
8
8
|
this.valueConverter = valueConverter;
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
return this.store.has(
|
|
10
|
+
has(key) {
|
|
11
|
+
return this.store.has(this.keyConverter.toString(key));
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
const buffer = this.store.get(
|
|
13
|
+
get(key) {
|
|
14
|
+
const buffer = this.store.get(this.keyConverter.toString(key));
|
|
15
15
|
if (buffer) {
|
|
16
16
|
return this.valueConverter.fromBuffer(buffer);
|
|
17
17
|
}
|
|
@@ -19,20 +19,17 @@ export class DiskStoreView {
|
|
|
19
19
|
return undefined;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
await this.keyConverter.toString(key),
|
|
25
|
-
await this.valueConverter.toBuffer(value)
|
|
26
|
-
]));
|
|
22
|
+
set(key, value) {
|
|
23
|
+
this.store.set(this.keyConverter.toString(key), this.valueConverter.toBuffer(value));
|
|
27
24
|
}
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
delete(key) {
|
|
26
|
+
this.store.delete(this.keyConverter.toString(key));
|
|
30
27
|
}
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
clear() {
|
|
29
|
+
this.store.clear();
|
|
33
30
|
}
|
|
34
31
|
keys() {
|
|
35
|
-
return pipe(this.store.keys(), iter =>
|
|
32
|
+
return pipe(this.store.keys(), iter => map(iter, key => this.keyConverter.fromString(key)), iter => filter(iter, isntUndefined));
|
|
36
33
|
}
|
|
37
34
|
}
|
|
38
35
|
//# sourceMappingURL=disk-store-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk-store-view.js","sourceRoot":"","sources":["../src/disk-store-view.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"disk-store-view.js","sourceRoot":"","sources":["../src/disk-store-view.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,MAAM,OAAO,aAAa;IACxB,YACU,KAAqC,EACrC,YAA8B,EAC9B,cAAkC;QAFlC,UAAK,GAAL,KAAK,CAAgC;QACrC,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,mBAAc,GAAd,cAAc,CAAoB;IACzC,CAAC;IAEJ,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,GAAG,CAAC,GAAM;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAE9D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CACpC,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAAM;QACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CACT,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAC3D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAmB,IAAI,EAAE,aAAa,CAAC,CACtD,CAAA;IACH,CAAC;CACF"}
|
|
@@ -10,11 +10,11 @@ export declare class DiskStoreWithCache {
|
|
|
10
10
|
private store;
|
|
11
11
|
private cache;
|
|
12
12
|
constructor(store: DiskStore, cache: ICache);
|
|
13
|
-
close():
|
|
13
|
+
close(): void;
|
|
14
14
|
has(key: string): boolean;
|
|
15
15
|
get(key: string): Buffer | undefined;
|
|
16
|
-
set(key: string, value: Buffer):
|
|
17
|
-
delete(key: string):
|
|
18
|
-
clear():
|
|
16
|
+
set(key: string, value: Buffer): void;
|
|
17
|
+
delete(key: string): void;
|
|
18
|
+
clear(): void;
|
|
19
19
|
keys(): IterableIterator<string>;
|
|
20
20
|
}
|
|
@@ -4,8 +4,8 @@ export class DiskStoreWithCache {
|
|
|
4
4
|
this.store = store;
|
|
5
5
|
this.cache = cache;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
close() {
|
|
8
|
+
this.store.close();
|
|
9
9
|
}
|
|
10
10
|
has(key) {
|
|
11
11
|
const result = this.cache.get(key);
|
|
@@ -47,16 +47,16 @@ export class DiskStoreWithCache {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
set(key, value) {
|
|
51
|
+
this.store.set(key, value);
|
|
52
52
|
this.cache.delete(key);
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
delete(key) {
|
|
55
|
+
this.store.delete(key);
|
|
56
56
|
this.cache.delete(key);
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
clear() {
|
|
59
|
+
this.store.clear();
|
|
60
60
|
this.cache.clear();
|
|
61
61
|
}
|
|
62
62
|
keys() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk-store-with-cache.js","sourceRoot":"","sources":["../src/disk-store-with-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAUnD,MAAM,OAAO,kBAAkB;IAC7B,YACU,KAAgB,EAChB,KAAa;QADb,UAAK,GAAL,KAAK,CAAW;QAChB,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEJ,KAAK
|
|
1
|
+
{"version":3,"file":"disk-store-with-cache.js","sourceRoot":"","sources":["../src/disk-store-with-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAUnD,MAAM,OAAO,kBAAkB;IAC7B,YACU,KAAgB,EAChB,KAAa;QADb,UAAK,GAAL,KAAK,CAAW;QAChB,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEJ,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC3B,OAAO,IAAI,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC1B,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;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,CAAC;YACrB,OAAO,SAAS,CAAA;QAClB,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC3B,OAAO,MAAM,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC1B,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAa;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAEtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAElB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF"}
|
package/lib/disk-store.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import
|
|
2
|
+
import { Database as IDatabase } from 'better-sqlite3';
|
|
3
3
|
export declare class DiskStore {
|
|
4
|
-
_db:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
keys(): IterableIterator<string>;
|
|
4
|
+
_db: IDatabase;
|
|
5
|
+
private constructor();
|
|
6
|
+
static create(filename?: string): Promise<DiskStore>;
|
|
7
|
+
close(): void;
|
|
8
|
+
has: (key: string) => boolean;
|
|
9
|
+
get: (key: string) => Buffer | undefined;
|
|
10
|
+
set: (key: string, value: Buffer) => void;
|
|
11
|
+
delete: (key: string) => void;
|
|
12
|
+
clear: () => void;
|
|
13
|
+
keys: () => IterableIterator<string>;
|
|
15
14
|
}
|