@peerbit/any-store 1.0.12 → 1.0.14
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/lib/esm/opfs-worker.js +44 -13
- package/lib/esm/opfs-worker.js.map +1 -1
- package/lib/esm/opfs.d.ts +1 -1
- package/lib/esm/opfs.js +8 -4
- package/lib/esm/opfs.js.map +1 -1
- package/package.json +3 -3
- package/src/opfs-worker.ts +45 -15
- package/src/opfs.ts +10 -4
package/lib/esm/opfs-worker.js
CHANGED
|
@@ -48,6 +48,26 @@ export class OPFSStoreWorker {
|
|
|
48
48
|
let isOpen = false;
|
|
49
49
|
const createMemory = (root, levels = []) => {
|
|
50
50
|
let m = root;
|
|
51
|
+
let sizeCache;
|
|
52
|
+
const sizeMap = new Map(); // files size per key
|
|
53
|
+
const calculateSize = async () => {
|
|
54
|
+
sizeCache = 0;
|
|
55
|
+
for await (const value of m.values()) {
|
|
56
|
+
if (value.kind === "file") {
|
|
57
|
+
try {
|
|
58
|
+
const handle = await waitForSyncAcccess(value);
|
|
59
|
+
const handleSize = handle.getSize();
|
|
60
|
+
sizeMap.set(value.name, handleSize);
|
|
61
|
+
sizeCache += handleSize;
|
|
62
|
+
handle.close();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
// TODO better error handling.
|
|
66
|
+
// most commonly error can be thrown when we are invoking getSize and files does not exist (anymore)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
51
71
|
// 'open' | 'closed' is just a virtual thing since OPFS is always open as soone as we get the FileSystemDirectoryHandle
|
|
52
72
|
// TODO remove status? or assume not storage adapters can be closed?
|
|
53
73
|
const open = async () => {
|
|
@@ -59,6 +79,7 @@ export class OPFSStoreWorker {
|
|
|
59
79
|
create: true
|
|
60
80
|
});
|
|
61
81
|
}
|
|
82
|
+
await calculateSize();
|
|
62
83
|
}
|
|
63
84
|
};
|
|
64
85
|
return {
|
|
@@ -66,20 +87,27 @@ export class OPFSStoreWorker {
|
|
|
66
87
|
for await (const key of m.keys()) {
|
|
67
88
|
m.removeEntry(key, { recursive: true });
|
|
68
89
|
}
|
|
90
|
+
sizeCache = 0;
|
|
91
|
+
sizeMap.clear();
|
|
69
92
|
},
|
|
70
93
|
del: async (key) => {
|
|
94
|
+
const encodedKey = encodeName(key);
|
|
71
95
|
try {
|
|
72
|
-
await m.removeEntry(
|
|
96
|
+
await m.removeEntry(encodedKey, { recursive: true });
|
|
73
97
|
}
|
|
74
98
|
catch (error) {
|
|
75
|
-
if (error instanceof DOMException
|
|
76
|
-
error.name === "NotFoundError") {
|
|
99
|
+
if (error instanceof DOMException) {
|
|
77
100
|
return;
|
|
78
101
|
}
|
|
79
102
|
else {
|
|
80
103
|
throw error;
|
|
81
104
|
}
|
|
82
105
|
}
|
|
106
|
+
const prevSize = sizeMap.get(encodedKey);
|
|
107
|
+
if (prevSize != null) {
|
|
108
|
+
sizeCache -= prevSize;
|
|
109
|
+
sizeMap.delete(encodedKey);
|
|
110
|
+
}
|
|
83
111
|
},
|
|
84
112
|
get: async (key) => {
|
|
85
113
|
try {
|
|
@@ -93,30 +121,32 @@ export class OPFSStoreWorker {
|
|
|
93
121
|
error.name === "NotFoundError") {
|
|
94
122
|
return undefined;
|
|
95
123
|
}
|
|
124
|
+
else if (error) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
96
127
|
else {
|
|
97
128
|
throw error;
|
|
98
129
|
}
|
|
99
130
|
}
|
|
100
131
|
},
|
|
101
132
|
put: async (key, value) => {
|
|
102
|
-
const
|
|
133
|
+
const encodedKey = encodeName(key);
|
|
134
|
+
const fileHandle = await m.getFileHandle(encodedKey, {
|
|
103
135
|
create: true
|
|
104
136
|
});
|
|
105
137
|
const writeFileHandle = await createWriteHandle(fileHandle);
|
|
106
138
|
writeFileHandle.write(value);
|
|
107
139
|
writeFileHandle.flush();
|
|
108
140
|
writeFileHandle.close();
|
|
141
|
+
const prevSize = sizeMap.get(encodedKey);
|
|
142
|
+
if (prevSize) {
|
|
143
|
+
sizeCache -= prevSize;
|
|
144
|
+
}
|
|
145
|
+
sizeCache += value.byteLength;
|
|
146
|
+
sizeMap.set(encodedKey, value.byteLength);
|
|
109
147
|
},
|
|
110
148
|
size: async () => {
|
|
111
|
-
|
|
112
|
-
for await (const value of m.values()) {
|
|
113
|
-
if (value.kind === "file") {
|
|
114
|
-
const handle = await waitForSyncAcccess(value);
|
|
115
|
-
size += handle.getSize();
|
|
116
|
-
handle.close();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return size;
|
|
149
|
+
return sizeCache;
|
|
120
150
|
},
|
|
121
151
|
status: () => (isOpen ? "open" : "closed"),
|
|
122
152
|
sublevel: async (name) => {
|
|
@@ -141,6 +171,7 @@ export class OPFSStoreWorker {
|
|
|
141
171
|
}
|
|
142
172
|
},
|
|
143
173
|
close: async () => {
|
|
174
|
+
sizeCache = undefined; // TODO types
|
|
144
175
|
isOpen = false;
|
|
145
176
|
this._memoryIterator.clear();
|
|
146
177
|
},
|
|
@@ -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/lib/esm/opfs.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare class OPFSStore implements AnyStore {
|
|
|
6
6
|
levelMap: Map<string, AnyStore>;
|
|
7
7
|
root: AnyStore;
|
|
8
8
|
private _responseCallbacks;
|
|
9
|
-
private
|
|
9
|
+
private _createStorage;
|
|
10
10
|
constructor(directory?: string | undefined);
|
|
11
11
|
status(): MaybePromise<"opening" | "open" | "closing" | "closed">;
|
|
12
12
|
close(): Promise<void>;
|
package/lib/esm/opfs.js
CHANGED
|
@@ -38,11 +38,11 @@ export class OPFSStore {
|
|
|
38
38
|
levelMap;
|
|
39
39
|
root;
|
|
40
40
|
_responseCallbacks = new Map();
|
|
41
|
-
|
|
41
|
+
_createStorage;
|
|
42
42
|
constructor(directory) {
|
|
43
43
|
this.directory = directory;
|
|
44
44
|
this.levelMap = new Map();
|
|
45
|
-
this.
|
|
45
|
+
this._createStorage = (level = []) => {
|
|
46
46
|
return {
|
|
47
47
|
clear: async () => {
|
|
48
48
|
await this.request(new memory.REQ_Clear({ level }));
|
|
@@ -60,7 +60,7 @@ export class OPFSStore {
|
|
|
60
60
|
sublevel: async (name) => {
|
|
61
61
|
await this.request(new memory.REQ_Sublevel({ level, name }));
|
|
62
62
|
const newLevels = [...level, name];
|
|
63
|
-
const sublevel = this.
|
|
63
|
+
const sublevel = this._createStorage(newLevels);
|
|
64
64
|
this.levelMap.set(memory.levelKey(newLevels), sublevel);
|
|
65
65
|
return sublevel;
|
|
66
66
|
},
|
|
@@ -90,8 +90,12 @@ export class OPFSStore {
|
|
|
90
90
|
}
|
|
91
91
|
async open() {
|
|
92
92
|
if (!this.worker) {
|
|
93
|
+
if (!globalThis["__playwright_test__"] &&
|
|
94
|
+
(await navigator.storage.persist()) === false) {
|
|
95
|
+
throw new Error("OPFS not allowed to persist data");
|
|
96
|
+
}
|
|
93
97
|
this.worker = createWorker(this.directory);
|
|
94
|
-
this.root = this.
|
|
98
|
+
this.root = this._createStorage([]);
|
|
95
99
|
this.worker.addEventListener("message", async (ev) => {
|
|
96
100
|
const message = deserialize(ev.data, memory.MemoryMessage);
|
|
97
101
|
this._responseCallbacks.get(message.messageId).fn(message);
|
package/lib/esm/opfs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opfs.js","sourceRoot":"","sources":["../../src/opfs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,SAAS,cAAc,CACtB,MAIC,EACD,KAAe;IAIf,OAAO;QACN,CAAC,MAAM,CAAC,aAAa,CAAC;YACrB,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC;YAC1B,OAAO;gBACN,IAAI,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAChC,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACvD,CAAC;oBACF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;oBACnD,CAAC;oBACD,wCAAwC;oBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3C,OAAO;4BACN,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAyB;yBACb,CAAC;oBACnD,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAGpC,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,MAAM;oBACX,MAAM,MAAM,CAAC,OAAO,CACnB,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACvD,CAAC;oBACF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAGpC,CAAC;gBACH,CAAC;aACD,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,EAAE;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,mBAAmB,GAAG,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,OAAO,SAAS;IAWA;IAVrB,MAAM,CAAS;IACf,QAAQ,CAAwB;IAChC,IAAI,CAAW;IAEP,kBAAkB,GAGtB,IAAI,GAAG,EAAE,CAAC;IAEN,
|
|
1
|
+
{"version":3,"file":"opfs.js","sourceRoot":"","sources":["../../src/opfs.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
|
+
"version": "1.0.14",
|
|
4
4
|
"description": "Level with lazy transactions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"license": "MIT",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@peerbit/crypto": "^2.1.
|
|
42
|
+
"@peerbit/crypto": "^2.1.7",
|
|
43
43
|
"@peerbit/logger": "1.0.2",
|
|
44
44
|
"@peerbit/time": "2.0.6",
|
|
45
45
|
"level": "^8.0.0",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"localMaintainers": [
|
|
49
49
|
"dao.xyz"
|
|
50
50
|
],
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "8382facf938cb5c6ff30155e43c11f588302aab0"
|
|
52
52
|
}
|
package/src/opfs-worker.ts
CHANGED
|
@@ -67,11 +67,31 @@ export class OPFSStoreWorker {
|
|
|
67
67
|
levels: string[] = []
|
|
68
68
|
): AnyStore => {
|
|
69
69
|
let m: FileSystemDirectoryHandle = root!;
|
|
70
|
+
let sizeCache: number;
|
|
71
|
+
const sizeMap: Map<string, number> = new Map(); // files size per key
|
|
70
72
|
|
|
73
|
+
const calculateSize = async () => {
|
|
74
|
+
sizeCache = 0;
|
|
75
|
+
for await (const value of m.values()) {
|
|
76
|
+
if (value.kind === "file") {
|
|
77
|
+
try {
|
|
78
|
+
const handle = await waitForSyncAcccess(value);
|
|
79
|
+
const handleSize = handle.getSize();
|
|
80
|
+
sizeMap.set(value.name, handleSize);
|
|
81
|
+
sizeCache += handleSize;
|
|
82
|
+
handle.close();
|
|
83
|
+
} catch (error) {
|
|
84
|
+
// TODO better error handling.
|
|
85
|
+
// most commonly error can be thrown when we are invoking getSize and files does not exist (anymore)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
71
90
|
// 'open' | 'closed' is just a virtual thing since OPFS is always open as soone as we get the FileSystemDirectoryHandle
|
|
72
91
|
// TODO remove status? or assume not storage adapters can be closed?
|
|
73
92
|
const open = async () => {
|
|
74
93
|
await ready;
|
|
94
|
+
|
|
75
95
|
if (!m) {
|
|
76
96
|
m = await navigator.storage.getDirectory();
|
|
77
97
|
if (directory) {
|
|
@@ -79,6 +99,7 @@ export class OPFSStoreWorker {
|
|
|
79
99
|
create: true
|
|
80
100
|
});
|
|
81
101
|
}
|
|
102
|
+
await calculateSize();
|
|
82
103
|
}
|
|
83
104
|
};
|
|
84
105
|
return {
|
|
@@ -86,21 +107,26 @@ export class OPFSStoreWorker {
|
|
|
86
107
|
for await (const key of m.keys()) {
|
|
87
108
|
m.removeEntry(key, { recursive: true });
|
|
88
109
|
}
|
|
110
|
+
sizeCache = 0;
|
|
111
|
+
sizeMap.clear();
|
|
89
112
|
},
|
|
90
113
|
|
|
91
114
|
del: async (key: string) => {
|
|
115
|
+
const encodedKey = encodeName(key);
|
|
92
116
|
try {
|
|
93
|
-
await m.removeEntry(
|
|
117
|
+
await m.removeEntry(encodedKey, { recursive: true });
|
|
94
118
|
} catch (error) {
|
|
95
|
-
if (
|
|
96
|
-
error instanceof DOMException &&
|
|
97
|
-
error.name === "NotFoundError"
|
|
98
|
-
) {
|
|
119
|
+
if (error instanceof DOMException) {
|
|
99
120
|
return;
|
|
100
121
|
} else {
|
|
101
122
|
throw error;
|
|
102
123
|
}
|
|
103
124
|
}
|
|
125
|
+
const prevSize = sizeMap.get(encodedKey);
|
|
126
|
+
if (prevSize != null) {
|
|
127
|
+
sizeCache -= prevSize;
|
|
128
|
+
sizeMap.delete(encodedKey);
|
|
129
|
+
}
|
|
104
130
|
},
|
|
105
131
|
|
|
106
132
|
get: async (key: string) => {
|
|
@@ -115,31 +141,34 @@ export class OPFSStoreWorker {
|
|
|
115
141
|
error.name === "NotFoundError"
|
|
116
142
|
) {
|
|
117
143
|
return undefined;
|
|
144
|
+
} else if (error) {
|
|
145
|
+
return undefined;
|
|
118
146
|
} else {
|
|
119
147
|
throw error;
|
|
120
148
|
}
|
|
121
149
|
}
|
|
122
150
|
},
|
|
123
151
|
put: async (key: string, value: Uint8Array) => {
|
|
124
|
-
const
|
|
152
|
+
const encodedKey = encodeName(key);
|
|
153
|
+
|
|
154
|
+
const fileHandle = await m.getFileHandle(encodedKey, {
|
|
125
155
|
create: true
|
|
126
156
|
});
|
|
127
157
|
const writeFileHandle = await createWriteHandle(fileHandle);
|
|
128
158
|
writeFileHandle.write(value);
|
|
129
159
|
writeFileHandle.flush();
|
|
130
160
|
writeFileHandle.close();
|
|
161
|
+
|
|
162
|
+
const prevSize = sizeMap.get(encodedKey);
|
|
163
|
+
if (prevSize) {
|
|
164
|
+
sizeCache -= prevSize;
|
|
165
|
+
}
|
|
166
|
+
sizeCache += value.byteLength;
|
|
167
|
+
sizeMap.set(encodedKey, value.byteLength);
|
|
131
168
|
},
|
|
132
169
|
|
|
133
170
|
size: async () => {
|
|
134
|
-
|
|
135
|
-
for await (const value of m.values()) {
|
|
136
|
-
if (value.kind === "file") {
|
|
137
|
-
const handle = await waitForSyncAcccess(value);
|
|
138
|
-
size += handle.getSize();
|
|
139
|
-
handle.close();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return size;
|
|
171
|
+
return sizeCache;
|
|
143
172
|
},
|
|
144
173
|
status: () => (isOpen ? "open" : "closed"),
|
|
145
174
|
|
|
@@ -166,6 +195,7 @@ export class OPFSStoreWorker {
|
|
|
166
195
|
}
|
|
167
196
|
},
|
|
168
197
|
close: async () => {
|
|
198
|
+
sizeCache = undefined as any; // TODO types
|
|
169
199
|
isOpen = false;
|
|
170
200
|
this._memoryIterator.clear();
|
|
171
201
|
},
|
package/src/opfs.ts
CHANGED
|
@@ -65,10 +65,10 @@ export class OPFSStore implements AnyStore {
|
|
|
65
65
|
{ fn: (message: memory.MemoryRequest) => any; once: boolean }
|
|
66
66
|
> = new Map();
|
|
67
67
|
|
|
68
|
-
private
|
|
68
|
+
private _createStorage: (level: string[]) => AnyStore;
|
|
69
69
|
constructor(readonly directory?: string) {
|
|
70
70
|
this.levelMap = new Map();
|
|
71
|
-
this.
|
|
71
|
+
this._createStorage = (level: string[] = []): AnyStore => {
|
|
72
72
|
return {
|
|
73
73
|
clear: async () => {
|
|
74
74
|
await this.request<memory.RESP_Clear>(
|
|
@@ -101,7 +101,7 @@ export class OPFSStore implements AnyStore {
|
|
|
101
101
|
sublevel: async (name) => {
|
|
102
102
|
await this.request(new memory.REQ_Sublevel({ level, name }));
|
|
103
103
|
const newLevels = [...level, name];
|
|
104
|
-
const sublevel = this.
|
|
104
|
+
const sublevel = this._createStorage(newLevels);
|
|
105
105
|
this.levelMap.set(memory.levelKey(newLevels), sublevel);
|
|
106
106
|
return sublevel;
|
|
107
107
|
},
|
|
@@ -137,8 +137,14 @@ export class OPFSStore implements AnyStore {
|
|
|
137
137
|
}
|
|
138
138
|
async open(): Promise<void> {
|
|
139
139
|
if (!this.worker) {
|
|
140
|
+
if (
|
|
141
|
+
!globalThis["__playwright_test__"] &&
|
|
142
|
+
(await navigator.storage.persist()) === false
|
|
143
|
+
) {
|
|
144
|
+
throw new Error("OPFS not allowed to persist data");
|
|
145
|
+
}
|
|
140
146
|
this.worker = createWorker(this.directory);
|
|
141
|
-
this.root = this.
|
|
147
|
+
this.root = this._createStorage([]);
|
|
142
148
|
this.worker.addEventListener("message", async (ev) => {
|
|
143
149
|
const message = deserialize(ev.data, memory.MemoryMessage);
|
|
144
150
|
this._responseCallbacks.get(message.messageId)!.fn(message);
|