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.
Files changed (38) hide show
  1. package/README.md +94 -45
  2. package/lib/converters/lz4-value-converter.d.ts +7 -1
  3. package/lib/converters/lz4-value-converter.js +13 -0
  4. package/lib/converters/lz4-value-converter.js.map +1 -1
  5. package/lib/converters/prefix-key-converter.d.ts +9 -2
  6. package/lib/converters/prefix-key-converter.js +19 -0
  7. package/lib/converters/prefix-key-converter.js.map +1 -1
  8. package/lib/converters/zstandard-value-converter.d.ts +3 -3
  9. package/lib/converters/zstandard-value-converter.js +1 -1
  10. package/lib/converters/zstandard-value-converter.js.map +1 -1
  11. package/lib/disk-store-async-view.d.ts +15 -0
  12. package/lib/disk-store-async-view.js +38 -0
  13. package/lib/disk-store-async-view.js.map +1 -0
  14. package/lib/disk-store-view.d.ts +7 -16
  15. package/lib/disk-store-view.js +12 -15
  16. package/lib/disk-store-view.js.map +1 -1
  17. package/lib/disk-store-with-cache.d.ts +4 -4
  18. package/lib/disk-store-with-cache.js +8 -8
  19. package/lib/disk-store-with-cache.js.map +1 -1
  20. package/lib/disk-store.d.ts +11 -12
  21. package/lib/disk-store.js +83 -36
  22. package/lib/disk-store.js.map +1 -1
  23. package/lib/index.d.ts +4 -2
  24. package/lib/index.js +4 -2
  25. package/lib/index.js.map +1 -1
  26. package/lib/types.d.ts +9 -7
  27. package/migrations/001-initial.sql +19 -0
  28. package/migrations/schema.sql +7 -0
  29. package/package.json +34 -34
  30. package/src/converters/lz4-value-converter.ts +17 -1
  31. package/src/converters/prefix-key-converter.ts +23 -2
  32. package/src/converters/zstandard-value-converter.ts +3 -3
  33. package/src/disk-store-async-view.ts +53 -0
  34. package/src/disk-store-view.ts +18 -29
  35. package/src/disk-store-with-cache.ts +8 -8
  36. package/src/disk-store.ts +93 -42
  37. package/src/index.ts +4 -2
  38. 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 = new DiskStore('/tmp/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
- constructor(dirname: string)
24
+ static create(filename?: string): Promise<DiskStore>
32
25
 
33
- close(): Promise<void>
26
+ close(): void
34
27
 
35
28
  has(key: string): boolean
36
29
  get(key: string): Buffer | undefined
37
- set(key: string, value: Buffer): Promise<void>
38
- delete(key: string): Promise<void>
39
- clear(): Promise<void>
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(): Promise<void>
50
+ close(): void
61
51
 
62
52
  has(key: string): boolean
63
53
  get(key: string): Buffer | undefined
64
- set(key: string, value: Buffer): Promise<void>
65
- delete(key: string): Promise<void>
66
- clear(): Promise<void>
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) => Awaitable<string>
76
- fromString: (value: string) => Awaitable<T | undefined>
65
+ toString: (value: T) => string
66
+ fromString: (value: string) => T | undefined
77
67
  }
78
68
 
79
69
  interface IValueConverter<T> {
80
- toBuffer: (value: T) => Awaitable<Buffer>
81
- fromBuffer: (value: Buffer) => Awaitable<T>
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(): Promise<void>
118
+ clear(): void
96
119
 
97
- keys(): IterableIterator<K>
120
+ keys(): AsyncIterableIterator<K>
98
121
  }
99
122
  ```
100
123
 
101
124
  ### Converters
102
- #### IndexKeyConverter
125
+ #### PassthroughKeyConverter
103
126
  ```ts
104
- class IndexKeyConverter implements IKeyConverter<number>
127
+ class PassthroughKeyConverter implements IKeyConverter<string>
105
128
  ```
106
129
 
107
- #### JSONKeyConverter
130
+ #### PassthroughValueConverter
108
131
  ```ts
109
- class JSONKeyConverter<T> implements IKeyConverter<T>
132
+ class PassthroughValueConverter implements IValueConverter<Buffer>
110
133
  ```
111
134
 
112
- #### JSONValueConverter
135
+ #### IndexKeyConverter
113
136
  ```ts
114
- class JSONValueConverter<T> implements IValueConverter<T> {
115
- constructor(encoding: BufferEncoding = 'utf-8')
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
- #### PassthroughKeyConverter
147
+ #### PrefixKeyAsyncConverter
120
148
  ```ts
121
- class PassthroughKeyConverter implements IKeyConverter<string>
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
- #### PassthroughValueConverter
160
+ #### JSONKeyConverter
125
161
  ```ts
126
- class PassthroughValueConverter implements IValueConverter<Buffer>
162
+ class JSONKeyConverter<T> implements IKeyConverter<T>
127
163
  ```
128
164
 
129
- #### PrefixKeyConverter
165
+ #### JSONValueConverter
130
166
  ```ts
131
- class PrefixKeyConverter<T> implements IKeyConverter<T> {
132
- constructor(keyConverter: IKeyConverter<T>, prefix: string)
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
- #### ZstandardValueConverter
179
+ #### LZ4ValueAsyncConverter
144
180
  ```ts
145
- class ZstandardValueConverter<T> implements IValueConverter<T> {
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;YACjC,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;SACX;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;CACF"}
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 ZstandardValueConverter<T> implements IValueConverter<T> {
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,5 +1,5 @@
1
1
  import * as zstd from '@mongodb-js/zstd';
2
- export class ZstandardValueConverter {
2
+ export class ZstandardValueAsyncConverter {
3
3
  constructor(valueConverter, level) {
4
4
  this.valueConverter = valueConverter;
5
5
  this.level = level;
@@ -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,uBAAuB;IAClC,YACU,cAAkC,EAClC,KAAa;QADb,mBAAc,GAAd,cAAc,CAAoB;QAClC,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"}
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"}
@@ -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 { Awaitable } from '@blackglory/prelude';
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): Promise<boolean>;
19
- get(key: K): Promise<V | undefined>;
20
- set(key: K, value: V): Promise<void>;
21
- delete(key: K): Promise<void>;
22
- clear(): Promise<void>;
23
- keys(): AsyncIterableIterator<K>;
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
  }
@@ -1,5 +1,5 @@
1
1
  import { pipe } from 'extra-utils';
2
- import { mapAsync, filterAsync } from 'iterable-operator';
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
- async has(key) {
11
- return this.store.has(await this.keyConverter.toString(key));
10
+ has(key) {
11
+ return this.store.has(this.keyConverter.toString(key));
12
12
  }
13
- async get(key) {
14
- const buffer = this.store.get(await this.keyConverter.toString(key));
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
- async set(key, value) {
23
- await this.store.set(...await Promise.all([
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
- async delete(key) {
29
- await this.store.delete(await this.keyConverter.toString(key));
25
+ delete(key) {
26
+ this.store.delete(this.keyConverter.toString(key));
30
27
  }
31
- async clear() {
32
- await this.store.clear();
28
+ clear() {
29
+ this.store.clear();
33
30
  }
34
31
  keys() {
35
- return pipe(this.store.keys(), iter => mapAsync(iter, async (key) => await this.keyConverter.fromString(key)), iter => filterAsync(iter, isntUndefined));
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,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAa,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAY9D,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,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;YACV,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SAC9C;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAM,EAAE,KAAQ;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,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,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CACT,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAC5E,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CACzC,CAAA;IACH,CAAC;CACF"}
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(): Promise<void>;
13
+ close(): void;
14
14
  has(key: string): boolean;
15
15
  get(key: string): Buffer | undefined;
16
- set(key: string, value: Buffer): Promise<void>;
17
- delete(key: string): Promise<void>;
18
- clear(): Promise<void>;
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
- async close() {
8
- await this.store.close();
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
- async set(key, value) {
51
- await this.store.set(key, value);
50
+ set(key, value) {
51
+ this.store.set(key, value);
52
52
  this.cache.delete(key);
53
53
  }
54
- async delete(key) {
55
- await this.store.delete(key);
54
+ delete(key) {
55
+ this.store.delete(key);
56
56
  this.cache.delete(key);
57
57
  }
58
- async clear() {
59
- await this.store.clear();
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,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,aAAa,CAAC,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,aAAa,CAAC,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"}
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"}
@@ -1,15 +1,14 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import * as LMDB from 'lmdb';
2
+ import { Database as IDatabase } from 'better-sqlite3';
3
3
  export declare class DiskStore {
4
- _db: LMDB.RootDatabase;
5
- _dirname: string;
6
- private isTempPathname;
7
- constructor(dirname?: string);
8
- close(): Promise<void>;
9
- has(key: string): boolean;
10
- get(key: string): Buffer | undefined;
11
- set(key: string, value: Buffer): Promise<void>;
12
- delete(key: string): Promise<void>;
13
- clear(): Promise<void>;
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
  }