@peerbit/any-store 2.1.9 → 2.1.10

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.
@@ -2,11 +2,12 @@ import { type AnyStore } from "@peerbit/any-store-interface";
2
2
  import { type AbstractLevel } from "abstract-level";
3
3
  export declare class LevelStore implements AnyStore {
4
4
  readonly store: AbstractLevel<any, any, any>;
5
+ private getFn;
5
6
  constructor(store: AbstractLevel<any, any, any>);
6
7
  status(): "opening" | "open" | "closing" | "closed";
7
8
  close(): Promise<void>;
8
9
  open(): Promise<void>;
9
- get(key: string): Promise<Uint8Array | undefined>;
10
+ get(key: string): Uint8Array<ArrayBufferLike> | Promise<Uint8Array<ArrayBufferLike>>;
10
11
  iterator(): AsyncGenerator<[string, Uint8Array], void, void>;
11
12
  clear(): Promise<void>;
12
13
  put(key: string, value: Uint8Array): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"level.d.ts","sourceRoot":"","sources":["../../src/level.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOpD,qBAAa,UAAW,YAAW,QAAQ;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;gBAAnC,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAExD,MAAM;IAIA,KAAK;IAWL,IAAI;IAYJ,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAehD,QAAQ,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAS7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAQlC,GAAG,CAAC,GAAG,EAAE,MAAM;IAkBf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IA6BvB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI3B,SAAS;CAGT"}
1
+ {"version":3,"file":"level.d.ts","sourceRoot":"","sources":["../../src/level.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAmBpD,qBAAa,UAAW,YAAW,QAAQ;IAE9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IADxD,OAAO,CAAC,KAAK,CAAQ;gBACA,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAIxD,MAAM;IAIA,KAAK;IAWL,IAAI;IAYV,GAAG,CAAC,GAAG,EAAE,MAAM;IAIR,QAAQ,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAS7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAQlC,GAAG,CAAC,GAAG,EAAE,MAAM;IAQf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IA6BvB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI3B,SAAS;CAGT"}
package/dist/src/level.js CHANGED
@@ -1,12 +1,25 @@
1
1
  import {} from "@peerbit/any-store-interface";
2
2
  import {} from "abstract-level";
3
3
  import { ClassicLevel } from "classic-level";
4
- const isNotFoundError = (err) => err.toString().indexOf("NotFoundError: Key not found in database") === -1 &&
5
- err.toString().indexOf("NotFound") === -1;
4
+ const getOrGetSync = (level) => {
5
+ const canGetSync = level.supports["getSync"] !== false;
6
+ if (!canGetSync) {
7
+ return (key) => {
8
+ return level.get(key);
9
+ };
10
+ }
11
+ else {
12
+ return (key) => {
13
+ return level.getSync(key);
14
+ };
15
+ }
16
+ };
6
17
  export class LevelStore {
7
18
  store;
19
+ getFn;
8
20
  constructor(store) {
9
21
  this.store = store;
22
+ this.getFn = getOrGetSync(store);
10
23
  }
11
24
  status() {
12
25
  return this.store.status;
@@ -32,19 +45,8 @@ export class LevelStore {
32
45
  await this.store.open({ passive: true });
33
46
  }
34
47
  }
35
- async get(key) {
36
- return new Promise((resolve, reject) => {
37
- this.store.get(key, (err, result) => {
38
- if (err) {
39
- // Ignore error if key was not found
40
- if (isNotFoundError(err)) {
41
- return reject(err);
42
- }
43
- resolve(undefined);
44
- }
45
- resolve(result);
46
- });
47
- });
48
+ get(key) {
49
+ return this.getFn(key);
48
50
  }
49
51
  async *iterator() {
50
52
  const iterator = this.store.iterator({
@@ -68,17 +70,7 @@ export class LevelStore {
68
70
  if (this.store.status !== "open") {
69
71
  throw new Error("Cache store not open: " + this.store.status);
70
72
  }
71
- return new Promise((resolve, reject) => {
72
- this.store.del(key, (err) => {
73
- if (err) {
74
- // Ignore error if key was not found
75
- if (isNotFoundError(err)) {
76
- return reject(err);
77
- }
78
- }
79
- resolve();
80
- });
81
- });
73
+ await this.store.del(key);
82
74
  }
83
75
  async size() {
84
76
  let size = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"level.js","sourceRoot":"","sources":["../../src/level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"level.js","sourceRoot":"","sources":["../../src/level.ts"],"names":[],"mappings":"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"}
package/dist/src/store.js CHANGED
@@ -5,7 +5,7 @@ import { MemoryStore } from "./memory.js";
5
5
  import { check } from 'diskusage' */
6
6
  export const createStore = (directory) => {
7
7
  return directory
8
- ? new LevelStore(new Level(directory, { valueEncoding: "view" }))
8
+ ? new LevelStore(new Level(directory, { valueEncoding: "view" })) // TODO types? hooks does not seem to be updated
9
9
  : new MemoryStore();
10
10
  };
11
11
  /* export const estimate = (directory: string): Promise<{ quota?: number, usage?: number }> => {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;oCACoC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAkB,EAAE,EAAE;IACjD,OAAO,SAAS;QACf,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF;;IAEI"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;oCACoC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAkB,EAAE,EAAE;IACjD,OAAO,SAAS;QACf,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAQ,CAAC,CAAC,gDAAgD;QACzH,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF;;IAEI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/any-store",
3
- "version": "2.1.9",
3
+ "version": "2.1.10",
4
4
  "description": "Level with lazy transactions",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -70,7 +70,7 @@
70
70
  "@peerbit/any-store-opfs": "^1.0.9",
71
71
  "@peerbit/any-store-interface": "^1.0.0",
72
72
  "@peerbit/time": "2.1.0",
73
- "level": "^8.0.0",
73
+ "level": "^10.0.0",
74
74
  "uuid": "^10.0.0"
75
75
  },
76
76
  "devDependencies": {
package/src/level.ts CHANGED
@@ -2,12 +2,27 @@ import { type AnyStore } from "@peerbit/any-store-interface";
2
2
  import { type AbstractLevel } from "abstract-level";
3
3
  import { ClassicLevel } from "classic-level";
4
4
 
5
- const isNotFoundError = (err: any) =>
6
- err.toString().indexOf("NotFoundError: Key not found in database") === -1 &&
7
- err.toString().indexOf("NotFound") === -1;
5
+ type GetFn = (
6
+ key: string,
7
+ ) => Uint8Array | undefined | Promise<Uint8Array | undefined>;
8
+ const getOrGetSync = (level: AbstractLevel<any, any, any>): GetFn => {
9
+ const canGetSync = (level.supports as any)["getSync"] !== false;
10
+ if (!canGetSync) {
11
+ return (key: string): Promise<Uint8Array | undefined> => {
12
+ return level.get(key);
13
+ };
14
+ } else {
15
+ return (key: string): Uint8Array | undefined => {
16
+ return level.getSync(key);
17
+ };
18
+ }
19
+ };
8
20
 
9
21
  export class LevelStore implements AnyStore {
10
- constructor(readonly store: AbstractLevel<any, any, any>) {}
22
+ private getFn: GetFn;
23
+ constructor(readonly store: AbstractLevel<any, any, any>) {
24
+ this.getFn = getOrGetSync(store);
25
+ }
11
26
 
12
27
  status() {
13
28
  return this.store.status;
@@ -36,19 +51,8 @@ export class LevelStore implements AnyStore {
36
51
  }
37
52
  }
38
53
 
39
- async get(key: string): Promise<Uint8Array | undefined> {
40
- return new Promise<Uint8Array | undefined>((resolve, reject) => {
41
- this.store.get(key, (err, result) => {
42
- if (err) {
43
- // Ignore error if key was not found
44
- if (isNotFoundError(err)) {
45
- return reject(err);
46
- }
47
- resolve(undefined);
48
- }
49
- resolve(result);
50
- });
51
- });
54
+ get(key: string) {
55
+ return this.getFn(key);
52
56
  }
53
57
 
54
58
  async *iterator(): AsyncGenerator<[string, Uint8Array], void, void> {
@@ -77,17 +81,7 @@ export class LevelStore implements AnyStore {
77
81
  throw new Error("Cache store not open: " + this.store.status);
78
82
  }
79
83
 
80
- return new Promise<void>((resolve, reject) => {
81
- this.store.del(key, (err) => {
82
- if (err) {
83
- // Ignore error if key was not found
84
- if (isNotFoundError(err)) {
85
- return reject(err);
86
- }
87
- }
88
- resolve();
89
- });
90
- });
84
+ await this.store.del(key);
91
85
  }
92
86
 
93
87
  async size(): Promise<number> {
package/src/store.ts CHANGED
@@ -7,7 +7,7 @@ import { check } from 'diskusage' */
7
7
 
8
8
  export const createStore = (directory?: string) => {
9
9
  return directory
10
- ? new LevelStore(new Level(directory, { valueEncoding: "view" }))
10
+ ? new LevelStore(new Level(directory, { valueEncoding: "view" }) as any) // TODO types? hooks does not seem to be updated
11
11
  : new MemoryStore();
12
12
  };
13
13