@peerbit/any-store 1.0.3 → 1.0.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.
@@ -2,6 +2,7 @@ import { deserialize, serialize } from "@dao-xyz/borsh";
2
2
  import * as memory from "./opfs-worker-messages.js";
3
3
  import { fromBase64URL, toBase64URL } from "@peerbit/crypto";
4
4
  import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";
5
+ import { waitForResolved } from "@peerbit/time";
5
6
  const encodeName = (name) => {
6
7
  // since "/" and perhaps other characters might not be allowed we do encode
7
8
  const writer = new BinaryWriter();
@@ -13,6 +14,28 @@ const decodeName = (name) => {
13
14
  const writer = new BinaryReader(fromBase64URL(name));
14
15
  return writer.string();
15
16
  };
17
+ const waitForSyncAcccess = async (fileHandle) => {
18
+ try {
19
+ const handle = await fileHandle.createSyncAccessHandle();
20
+ return handle;
21
+ }
22
+ catch (error) {
23
+ const handle = await waitForResolved(() => fileHandle.createSyncAccessHandle());
24
+ if (!handle) {
25
+ throw error;
26
+ }
27
+ return handle;
28
+ }
29
+ };
30
+ const createWriteHandle = async (fileHandle) => {
31
+ // In Chrome on GET DOMException: Failed to execute 'createWritable' on 'FileSystemFileHandle': Failed to create swap file
32
+ // hence below is not used for now
33
+ /*
34
+ if (fileHandle.createWritable != null) {
35
+ return fileHandle.createWritable({ keepExistingData: false });
36
+ } */
37
+ return waitForSyncAcccess(fileHandle);
38
+ };
16
39
  export class OPFSStoreWorker {
17
40
  level;
18
41
  _levels;
@@ -71,15 +94,15 @@ export class OPFSStoreWorker {
71
94
  const fileHandle = await m.getFileHandle(encodeName(key), {
72
95
  create: true
73
96
  });
74
- const writeFileHandle = await fileHandle.createWritable();
75
- writeFileHandle.write(value);
97
+ const writeFileHandle = await createWriteHandle(fileHandle);
98
+ await writeFileHandle.write(value);
76
99
  writeFileHandle.close();
77
100
  },
78
101
  size: async () => {
79
102
  let size = 0;
80
103
  for await (const value of m.values()) {
81
104
  if (value.kind === "file") {
82
- const handle = await value.createSyncAccessHandle();
105
+ const handle = await waitForSyncAcccess(value);
83
106
  size += handle.getSize();
84
107
  handle.close();
85
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"opfs-worker.js","sourceRoot":"","sources":["../../src/opfs-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opfs-worker.js","sourceRoot":"","sources":["../../src/opfs-worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/any-store",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Level with lazy transactions",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -39,14 +39,14 @@
39
39
  },
40
40
  "license": "MIT",
41
41
  "dependencies": {
42
- "@peerbit/crypto": "^2.1.0",
42
+ "@peerbit/crypto": "^2.1.1",
43
43
  "@peerbit/logger": "1.0.2",
44
- "@peerbit/time": "2.0.0",
44
+ "@peerbit/time": "2.0.1",
45
45
  "level": "^8.0.0",
46
46
  "uuid": "^9.0.0"
47
47
  },
48
48
  "localMaintainers": [
49
49
  "dao.xyz"
50
50
  ],
51
- "gitHead": "93ca0a31b3ef21484d952d8bd806fe601d2c8b14"
51
+ "gitHead": "f4cb6a526d26e98360c32fd28dcdf9eb7ea10551"
52
52
  }
@@ -3,6 +3,7 @@ import { AnyStore } from "./interface.js";
3
3
  import * as memory from "./opfs-worker-messages.js";
4
4
  import { fromBase64URL, toBase64URL } from "@peerbit/crypto";
5
5
  import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";
6
+ import { waitForResolved } from "@peerbit/time";
6
7
  const encodeName = (name: string): string => {
7
8
  // since "/" and perhaps other characters might not be allowed we do encode
8
9
  const writer = new BinaryWriter();
@@ -16,6 +17,33 @@ const decodeName = (name: string): string => {
16
17
  return writer.string();
17
18
  };
18
19
 
20
+ const waitForSyncAcccess = async (
21
+ fileHandle: FileSystemFileHandle
22
+ ): Promise<FileSystemSyncAccessHandle> => {
23
+ try {
24
+ const handle = await fileHandle.createSyncAccessHandle();
25
+ return handle;
26
+ } catch (error) {
27
+ const handle = await waitForResolved(() =>
28
+ fileHandle.createSyncAccessHandle()
29
+ );
30
+ if (!handle) {
31
+ throw error;
32
+ }
33
+ return handle;
34
+ }
35
+ };
36
+
37
+ const createWriteHandle = async (fileHandle: FileSystemFileHandle) => {
38
+ // In Chrome on GET DOMException: Failed to execute 'createWritable' on 'FileSystemFileHandle': Failed to create swap file
39
+ // hence below is not used for now
40
+ /*
41
+ if (fileHandle.createWritable != null) {
42
+ return fileHandle.createWritable({ keepExistingData: false });
43
+ } */
44
+ return waitForSyncAcccess(fileHandle);
45
+ };
46
+
19
47
  export class OPFSStoreWorker {
20
48
  level: string[];
21
49
  private _levels: Map<string, AnyStore>;
@@ -88,8 +116,8 @@ export class OPFSStoreWorker {
88
116
  const fileHandle = await m.getFileHandle(encodeName(key), {
89
117
  create: true
90
118
  });
91
- const writeFileHandle = await fileHandle.createWritable();
92
- writeFileHandle.write(value);
119
+ const writeFileHandle = await createWriteHandle(fileHandle);
120
+ await writeFileHandle.write(value);
93
121
  writeFileHandle.close();
94
122
  },
95
123
 
@@ -97,7 +125,7 @@ export class OPFSStoreWorker {
97
125
  let size = 0;
98
126
  for await (const value of m.values()) {
99
127
  if (value.kind === "file") {
100
- const handle = await value.createSyncAccessHandle();
128
+ const handle = await waitForSyncAcccess(value);
101
129
  size += handle.getSize();
102
130
  handle.close();
103
131
  }