extra-disk-store 0.1.3 → 0.1.5

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 CHANGED
@@ -20,8 +20,15 @@ const value = store.get('key')
20
20
  ## API
21
21
  ### DiskStore
22
22
  ```ts
23
+ interface ICache {
24
+ set(key: string, value: Buffer | boolean | undefined): void
25
+ get(key: string): Buffer | boolean | undefined
26
+ delete(key: string): void
27
+ clear(): void
28
+ }
29
+
23
30
  class DiskStore {
24
- static create(filename?: string): Promise<DiskStore>
31
+ static create(filename?: string, cache?: ICache): Promise<DiskStore>
25
32
 
26
33
  close(): void
27
34
 
@@ -42,7 +49,7 @@ class DiskStore {
42
49
  ```ts
43
50
  interface IKeyConverter<T> {
44
51
  toString: (value: T) => string
45
- fromString: (value: string) => T
52
+ fromString: (value: string) => T | undefined
46
53
  }
47
54
 
48
55
  interface IValueConverter<T> {
@@ -70,7 +77,7 @@ class DiskStoreView<K, V> {
70
77
  ```ts
71
78
  interface IKeyAsyncConverter<T> {
72
79
  toString: (value: T) => Awaitable<string>
73
- fromString: (value: string) => Awaitable<T>
80
+ fromString: (value: string) => Awaitable<T | undefined>
74
81
  }
75
82
 
76
83
  interface IValueAsyncConverter<T> {
@@ -4,12 +4,12 @@ export declare class PrefixKeyConverter<T> implements IKeyConverter<T>, IKeyAsyn
4
4
  private prefix;
5
5
  constructor(keyConverter: IKeyConverter<T>, prefix: string);
6
6
  toString(value: T): string;
7
- fromString(value: string): T;
7
+ fromString(value: string): T | undefined;
8
8
  }
9
9
  export declare class PrefixKeyAsyncConverter<T> implements IKeyAsyncConverter<T> {
10
10
  private keyConverter;
11
11
  private prefix;
12
12
  constructor(keyConverter: IKeyConverter<T> | IKeyAsyncConverter<T>, prefix: string);
13
13
  toString(value: T): Promise<string>;
14
- fromString(value: string): Promise<T>;
14
+ fromString(value: string): Promise<T | undefined>;
15
15
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PrefixKeyAsyncConverter = exports.PrefixKeyConverter = void 0;
4
- const prelude_1 = require("@blackglory/prelude");
5
4
  class PrefixKeyConverter {
6
5
  constructor(keyConverter, prefix) {
7
6
  this.keyConverter = keyConverter;
@@ -12,9 +11,13 @@ class PrefixKeyConverter {
12
11
  return this.prefix + key;
13
12
  }
14
13
  fromString(value) {
15
- (0, prelude_1.assert)(value.startsWith(this.prefix), 'The key does not start with prefix');
16
- const key = this.keyConverter.fromString(value.slice(this.prefix.length));
17
- return key;
14
+ if (value.startsWith(this.prefix)) {
15
+ const key = this.keyConverter.fromString(value.slice(this.prefix.length));
16
+ return key;
17
+ }
18
+ else {
19
+ return undefined;
20
+ }
18
21
  }
19
22
  }
20
23
  exports.PrefixKeyConverter = PrefixKeyConverter;
@@ -28,9 +31,13 @@ class PrefixKeyAsyncConverter {
28
31
  return this.prefix + key;
29
32
  }
30
33
  async fromString(value) {
31
- (0, prelude_1.assert)(value.startsWith(this.prefix), 'The key does not start with prefix');
32
- const key = await this.keyConverter.fromString(value.slice(this.prefix.length));
33
- return key;
34
+ if (value.startsWith(this.prefix)) {
35
+ const key = await this.keyConverter.fromString(value.slice(this.prefix.length));
36
+ return key;
37
+ }
38
+ else {
39
+ return undefined;
40
+ }
34
41
  }
35
42
  }
36
43
  exports.PrefixKeyAsyncConverter = PrefixKeyAsyncConverter;
@@ -1 +1 @@
1
- {"version":3,"file":"prefix-key-converter.js","sourceRoot":"","sources":["../../src/converters/prefix-key-converter.ts"],"names":[],"mappings":";;;AACA,iDAA4C;AAE5C,MAAa,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,IAAA,gBAAM,EAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,oCAAoC,CAAC,CAAA;QAE3E,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACzE,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAjBD,gDAiBC;AAED,MAAa,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,IAAA,gBAAM,EAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,oCAAoC,CAAC,CAAA;QAE3E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/E,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAjBD,0DAiBC"}
1
+ {"version":3,"file":"prefix-key-converter.js","sourceRoot":"","sources":["../../src/converters/prefix-key-converter.ts"],"names":[],"mappings":";;;AAEA,MAAa,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;YACjC,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;SACX;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;CACF;AAnBD,gDAmBC;AAED,MAAa,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;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;AAnBD,0DAmBC"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DiskStoreAsyncView = void 0;
4
+ const extra_utils_1 = require("extra-utils");
4
5
  const iterable_operator_1 = require("iterable-operator");
6
+ const prelude_1 = require("@blackglory/prelude");
5
7
  class DiskStoreAsyncView {
6
8
  constructor(store, keyConverter, valueConverter) {
7
9
  this.store = store;
@@ -30,7 +32,7 @@ class DiskStoreAsyncView {
30
32
  this.store.clear();
31
33
  }
32
34
  keys() {
33
- return (0, iterable_operator_1.mapAsync)(this.store.keys(), key => this.keyConverter.fromString(key));
35
+ return (0, extra_utils_1.pipe)(this.store.keys(), iter => (0, iterable_operator_1.mapAsync)(iter, key => this.keyConverter.fromString(key)), iter => (0, iterable_operator_1.filterAsync)(iter, prelude_1.isntUndefined));
34
36
  }
35
37
  }
36
38
  exports.DiskStoreAsyncView = DiskStoreAsyncView;
@@ -1 +1 @@
1
- {"version":3,"file":"disk-store-async-view.js","sourceRoot":"","sources":["../src/disk-store-async-view.ts"],"names":[],"mappings":";;;AACA,yDAA4C;AAG5C,MAAa,kBAAkB;IAC7B,YACU,KAAgB,EAChB,YAAmC,EACnC,cAAuC;QAFvC,UAAK,GAAL,KAAK,CAAW;QAChB,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;YACV,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SACpD;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAM,EAAE,KAAQ;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1C,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,IAAA,4BAAQ,EACb,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CACzC,CAAA;IACH,CAAC;CACF;AA1CD,gDA0CC"}
1
+ {"version":3,"file":"disk-store-async-view.js","sourceRoot":"","sources":["../src/disk-store-async-view.ts"],"names":[],"mappings":";;;AAEA,6CAAkC;AAClC,yDAAyD;AACzD,iDAAmD;AAEnD,MAAa,kBAAkB;IAC7B,YACU,KAAgB,EAChB,YAAmC,EACnC,cAAuC;QAFvC,UAAK,GAAL,KAAK,CAAW;QAChB,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;YACV,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SACpD;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAM,EAAE,KAAQ;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1C,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,IAAA,kBAAI,EACT,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,EAAE,CAAC,IAAA,4BAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAChE,IAAI,CAAC,EAAE,CAAC,IAAA,+BAAW,EAAC,IAAI,EAAE,uBAAa,CAAC,CACzC,CAAA;IACH,CAAC;CACF;AA3CD,gDA2CC"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DiskStoreView = void 0;
4
+ const extra_utils_1 = require("extra-utils");
4
5
  const iterable_operator_1 = require("iterable-operator");
6
+ const prelude_1 = require("@blackglory/prelude");
5
7
  class DiskStoreView {
6
8
  constructor(store, keyConverter, valueConverter) {
7
9
  this.store = store;
@@ -30,7 +32,7 @@ class DiskStoreView {
30
32
  this.store.clear();
31
33
  }
32
34
  keys() {
33
- return (0, iterable_operator_1.map)(this.store.keys(), key => this.keyConverter.fromString(key));
35
+ return (0, extra_utils_1.pipe)(this.store.keys(), iter => (0, iterable_operator_1.map)(iter, key => this.keyConverter.fromString(key)), iter => (0, iterable_operator_1.filter)(iter, prelude_1.isntUndefined));
34
36
  }
35
37
  }
36
38
  exports.DiskStoreView = DiskStoreView;
@@ -1 +1 @@
1
- {"version":3,"file":"disk-store-view.js","sourceRoot":"","sources":["../src/disk-store-view.ts"],"names":[],"mappings":";;;AACA,yDAAuC;AAGvC,MAAa,aAAa;IACxB,YACU,KAAgB,EAChB,YAA8B,EAC9B,cAAkC;QAFlC,UAAK,GAAL,KAAK,CAAW;QAChB,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;YACV,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SAC9C;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;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,IAAA,uBAAG,EACR,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CACzC,CAAA;IACH,CAAC;CACF;AA1CD,sCA0CC"}
1
+ {"version":3,"file":"disk-store-view.js","sourceRoot":"","sources":["../src/disk-store-view.ts"],"names":[],"mappings":";;;AAEA,6CAAkC;AAClC,yDAA+C;AAC/C,iDAAmD;AAEnD,MAAa,aAAa;IACxB,YACU,KAAgB,EAChB,YAA8B,EAC9B,cAAkC;QAFlC,UAAK,GAAL,KAAK,CAAW;QAChB,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;YACV,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SAC9C;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;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,IAAA,kBAAI,EACT,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,EAAE,CAAC,IAAA,uBAAG,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAC3D,IAAI,CAAC,EAAE,CAAC,IAAA,0BAAM,EAAC,IAAI,EAAE,uBAAa,CAAC,CACpC,CAAA;IACH,CAAC;CACF;AA3CD,sCA2CC"}
@@ -1,14 +1,26 @@
1
1
  /// <reference types="node" />
2
2
  import { Database as IDatabase } from 'better-sqlite3';
3
+ import { ICache } from './types';
4
+ export declare enum CacheKeyType {
5
+ Exist = 0,
6
+ Value = 1
7
+ }
3
8
  export declare class DiskStore {
4
9
  _db: IDatabase;
5
- protected constructor(_db: IDatabase);
6
- static create(filename?: string): Promise<DiskStore>;
10
+ cache?: ICache | undefined;
11
+ protected constructor(_db: IDatabase, cache?: ICache | undefined);
12
+ static create(filename?: string, cache?: ICache): Promise<DiskStore>;
7
13
  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;
14
+ has(key: string): boolean;
15
+ private _has;
16
+ get(key: string): Buffer | undefined;
17
+ private _get;
18
+ set(key: string, value: Buffer): void;
19
+ private _set;
20
+ delete(key: string): void;
21
+ private _delete;
22
+ clear(): void;
23
+ private _clear;
13
24
  keys: () => IterableIterator<string>;
14
25
  }
26
+ export declare function createCacheKey(type: CacheKeyType, key: string): string;
package/lib/disk-store.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.DiskStore = void 0;
29
+ exports.createCacheKey = exports.DiskStore = exports.CacheKeyType = void 0;
30
30
  const path_1 = __importDefault(require("path"));
31
31
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
32
32
  const migration_files_1 = require("migration-files");
@@ -36,30 +36,37 @@ const extra_promise_1 = require("extra-promise");
36
36
  const extra_filesystem_1 = require("extra-filesystem");
37
37
  const Iter = __importStar(require("iterable-operator"));
38
38
  const extra_lazy_1 = require("extra-lazy");
39
+ var CacheKeyType;
40
+ (function (CacheKeyType) {
41
+ CacheKeyType[CacheKeyType["Exist"] = 0] = "Exist";
42
+ CacheKeyType[CacheKeyType["Value"] = 1] = "Value";
43
+ })(CacheKeyType = exports.CacheKeyType || (exports.CacheKeyType = {}));
39
44
  class DiskStore {
40
- constructor(_db) {
45
+ constructor(_db, cache) {
41
46
  this._db = _db;
42
- this.has = (0, extra_lazy_1.withLazyStatic)((key) => {
47
+ this.cache = cache;
48
+ this._has = (0, extra_lazy_1.withLazyStatic)((key) => {
43
49
  const row = (0, extra_lazy_1.lazyStatic)(() => this._db.prepare(`
44
50
  SELECT EXISTS(
45
- SELECT *
46
- FROM store
51
+ SELECT *
52
+ FROM store
47
53
  WHERE key = $key
48
- ) AS item_exists
54
+ ) AS item_exists
49
55
  `), [this._db]).get({ key });
50
- return row.item_exists === 1;
56
+ const result = row.item_exists === 1;
57
+ return result;
51
58
  });
52
- this.get = (0, extra_lazy_1.withLazyStatic)((key) => {
59
+ this._get = (0, extra_lazy_1.withLazyStatic)((key) => {
53
60
  const row = (0, extra_lazy_1.lazyStatic)(() => this._db.prepare(`
54
61
  SELECT value
55
62
  FROM store
56
- WHERE key = $key
63
+ WHERE key = $key
57
64
  `), [this._db]).get({ key });
58
- if ((0, prelude_1.isUndefined)(row))
59
- return undefined;
60
- return row.value;
65
+ return (0, prelude_1.isUndefined)(row)
66
+ ? undefined
67
+ : row.value;
61
68
  });
62
- this.set = (0, extra_lazy_1.withLazyStatic)((key, value) => {
69
+ this._set = (0, extra_lazy_1.withLazyStatic)((key, value) => {
63
70
  (0, extra_lazy_1.lazyStatic)(() => this._db.prepare(`
64
71
  INSERT INTO store (
65
72
  key
@@ -70,13 +77,13 @@ class DiskStore {
70
77
  DO UPDATE SET value = $value
71
78
  `), [this._db]).run({ key, value });
72
79
  });
73
- this.delete = (0, extra_lazy_1.withLazyStatic)((key) => {
80
+ this._delete = (0, extra_lazy_1.withLazyStatic)((key) => {
74
81
  (0, extra_lazy_1.lazyStatic)(() => this._db.prepare(`
75
82
  DELETE FROM store
76
83
  WHERE key = $key
77
84
  `), [this._db]).run({ key });
78
85
  });
79
- this.clear = (0, extra_lazy_1.withLazyStatic)(() => {
86
+ this._clear = (0, extra_lazy_1.withLazyStatic)(() => {
80
87
  (0, extra_lazy_1.lazyStatic)(() => this._db.prepare(`
81
88
  DELETE FROM store
82
89
  `), [this._db]).run();
@@ -89,14 +96,14 @@ class DiskStore {
89
96
  return Iter.map(iter, ({ key }) => key);
90
97
  });
91
98
  }
92
- static async create(filename) {
99
+ static async create(filename, cache) {
93
100
  const db = await (0, prelude_1.go)(async () => {
94
101
  const db = new better_sqlite3_1.default(filename !== null && filename !== void 0 ? filename : ':memory:');
95
102
  await migrateDatabase(db);
96
103
  db.unsafeMode(true);
97
104
  return db;
98
105
  });
99
- const diskStore = new this(db);
106
+ const diskStore = new this(db, cache);
100
107
  return diskStore;
101
108
  async function migrateDatabase(db) {
102
109
  const packageFilename = await (0, extra_filesystem_1.findUpPackageFilename)(__dirname);
@@ -115,6 +122,61 @@ class DiskStore {
115
122
  `);
116
123
  this._db.close();
117
124
  }
125
+ has(key) {
126
+ if (this.cache) {
127
+ const cacheKey = createCacheKey(CacheKeyType.Exist, key);
128
+ const result = this.cache.get(cacheKey);
129
+ if ((0, prelude_1.isBoolean)(result)) {
130
+ return result;
131
+ }
132
+ else {
133
+ const result = this._has(key);
134
+ this.cache.set(cacheKey, result);
135
+ return result;
136
+ }
137
+ }
138
+ else {
139
+ return this._has(key);
140
+ }
141
+ }
142
+ get(key) {
143
+ if (this.cache) {
144
+ const cacheKey = createCacheKey(CacheKeyType.Value, key);
145
+ const result = this.cache.get(cacheKey);
146
+ if (result instanceof Buffer) {
147
+ return result;
148
+ }
149
+ else {
150
+ const result = this._get(key);
151
+ this.cache.set(cacheKey, result);
152
+ return result;
153
+ }
154
+ }
155
+ else {
156
+ return this._get(key);
157
+ }
158
+ }
159
+ set(key, value) {
160
+ var _a;
161
+ this._set(key, value);
162
+ (_a = this.cache) === null || _a === void 0 ? void 0 : _a.delete(createCacheKey(CacheKeyType.Value, key));
163
+ }
164
+ delete(key) {
165
+ this._delete(key);
166
+ if (this.cache) {
167
+ this.cache.delete(createCacheKey(CacheKeyType.Exist, key));
168
+ this.cache.delete(createCacheKey(CacheKeyType.Value, key));
169
+ }
170
+ }
171
+ clear() {
172
+ var _a;
173
+ this._clear();
174
+ (_a = this.cache) === null || _a === void 0 ? void 0 : _a.clear();
175
+ }
118
176
  }
119
177
  exports.DiskStore = DiskStore;
178
+ function createCacheKey(type, key) {
179
+ return JSON.stringify([type, key]);
180
+ }
181
+ exports.createCacheKey = createCacheKey;
120
182
  //# sourceMappingURL=disk-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"disk-store.js","sourceRoot":"","sources":["../src/disk-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disk-store.js","sourceRoot":"","sources":["../src/disk-store.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './disk-store';
1
+ export { DiskStore } from './disk-store';
2
2
  export * from './disk-store-view';
3
3
  export * from './disk-store-async-view';
4
4
  export * from './converters';
package/lib/index.js CHANGED
@@ -14,7 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./disk-store"), exports);
17
+ exports.DiskStore = void 0;
18
+ var disk_store_1 = require("./disk-store");
19
+ Object.defineProperty(exports, "DiskStore", { enumerable: true, get: function () { return disk_store_1.DiskStore; } });
18
20
  __exportStar(require("./disk-store-view"), exports);
19
21
  __exportStar(require("./disk-store-async-view"), exports);
20
22
  __exportStar(require("./converters"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,oDAAiC;AACjC,0DAAuC;AACvC,+CAA4B;AAC5B,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAwC;AAA/B,uGAAA,SAAS,OAAA;AAClB,oDAAiC;AACjC,0DAAuC;AACvC,+CAA4B;AAC5B,0CAAuB"}
package/lib/types.d.ts CHANGED
@@ -1,8 +1,14 @@
1
1
  /// <reference types="node" />
2
2
  import { Awaitable } from '@blackglory/prelude';
3
+ export interface ICache {
4
+ set(key: string, value: Buffer | boolean | undefined): void;
5
+ get(key: string): Buffer | boolean | undefined;
6
+ delete(key: string): void;
7
+ clear(): void;
8
+ }
3
9
  export interface IKeyConverter<T> {
4
10
  toString: (value: T) => string;
5
- fromString: (value: string) => T;
11
+ fromString: (value: string) => T | undefined;
6
12
  }
7
13
  export interface IValueConverter<T> {
8
14
  toBuffer: (value: T) => Buffer;
@@ -10,7 +16,7 @@ export interface IValueConverter<T> {
10
16
  }
11
17
  export interface IKeyAsyncConverter<T> {
12
18
  toString: (value: T) => Awaitable<string>;
13
- fromString: (value: string) => Awaitable<T>;
19
+ fromString: (value: string) => Awaitable<T | undefined>;
14
20
  }
15
21
  export interface IValueAsyncConverter<T> {
16
22
  toBuffer: (value: T) => Awaitable<Buffer>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extra-disk-store",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [
@@ -39,10 +39,10 @@
39
39
  "@commitlint/cli": "^17.3.0",
40
40
  "@commitlint/config-conventional": "^17.3.0",
41
41
  "@types/better-sqlite3": "^7.6.2",
42
- "@types/jest": "^29.2.3",
42
+ "@types/jest": "^29.2.4",
43
43
  "@types/node": "14",
44
- "@typescript-eslint/eslint-plugin": "^5.45.0",
45
- "@typescript-eslint/parser": "^5.45.0",
44
+ "@typescript-eslint/eslint-plugin": "^5.45.1",
45
+ "@typescript-eslint/parser": "^5.45.1",
46
46
  "eslint": "^8.29.0",
47
47
  "husky": "^4.3.0",
48
48
  "jest": "^29.3.1",
@@ -64,6 +64,7 @@
64
64
  "extra-lazy": "^1.3.1",
65
65
  "extra-promise": "^4.4.0",
66
66
  "extra-timers": "^0.2.5",
67
+ "extra-utils": "^3.5.1",
67
68
  "iterable-operator": "^2.5.0",
68
69
  "lz4-wasm-nodejs": "^0.9.2",
69
70
  "migration-files": "^0.4.0"