@yydb/light-db 0.0.18 → 0.1.2
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/dist/api/index.d.ts +4 -9
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +3 -6
- package/dist/api/index.js.map +1 -1
- package/dist/api/types.d.ts +71 -42
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +5 -3
- package/dist/api/types.js.map +1 -1
- package/dist/api/wasm-database.d.ts +134 -27
- package/dist/api/wasm-database.d.ts.map +1 -1
- package/dist/api/wasm-database.js +172 -28
- package/dist/api/wasm-database.js.map +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.js.map +1 -1
- package/dist/shared/micro.d.ts +86 -0
- package/dist/shared/micro.d.ts.map +1 -0
- package/dist/shared/micro.js +194 -0
- package/dist/shared/micro.js.map +1 -0
- package/dist/shared/udf-types.d.ts +31 -0
- package/dist/shared/udf-types.d.ts.map +1 -0
- package/dist/shared/udf-types.js +12 -0
- package/dist/shared/udf-types.js.map +1 -0
- package/package.json +5 -7
- package/readme.md +60 -63
- package/dist/api/database.d.ts +0 -101
- package/dist/api/database.d.ts.map +0 -1
- package/dist/api/database.js +0 -149
- package/dist/api/database.js.map +0 -1
- package/dist/api/schema.d.ts +0 -33
- package/dist/api/schema.d.ts.map +0 -1
- package/dist/api/schema.js +0 -80
- package/dist/api/schema.js.map +0 -1
- package/dist/api/transaction.d.ts +0 -26
- package/dist/api/transaction.d.ts.map +0 -1
- package/dist/api/transaction.js +0 -52
- package/dist/api/transaction.js.map +0 -1
- package/dist/codec/binary.d.ts +0 -196
- package/dist/codec/binary.d.ts.map +0 -1
- package/dist/codec/binary.js +0 -342
- package/dist/codec/binary.js.map +0 -1
- package/dist/codec/checksum.d.ts +0 -21
- package/dist/codec/checksum.d.ts.map +0 -1
- package/dist/codec/checksum.js +0 -46
- package/dist/codec/checksum.js.map +0 -1
- package/dist/codec/index.d.ts +0 -12
- package/dist/codec/index.d.ts.map +0 -1
- package/dist/codec/index.js +0 -10
- package/dist/codec/index.js.map +0 -1
- package/dist/codec/page.d.ts +0 -114
- package/dist/codec/page.d.ts.map +0 -1
- package/dist/codec/page.js +0 -225
- package/dist/codec/page.js.map +0 -1
- package/dist/codec/record.d.ts +0 -62
- package/dist/codec/record.d.ts.map +0 -1
- package/dist/codec/record.js +0 -82
- package/dist/codec/record.js.map +0 -1
- package/dist/core/broadcast.d.ts +0 -39
- package/dist/core/broadcast.d.ts.map +0 -1
- package/dist/core/broadcast.js +0 -54
- package/dist/core/broadcast.js.map +0 -1
- package/dist/core/checkpoint.d.ts +0 -23
- package/dist/core/checkpoint.d.ts.map +0 -1
- package/dist/core/checkpoint.js +0 -49
- package/dist/core/checkpoint.js.map +0 -1
- package/dist/core/engine.d.ts +0 -142
- package/dist/core/engine.d.ts.map +0 -1
- package/dist/core/engine.js +0 -304
- package/dist/core/engine.js.map +0 -1
- package/dist/core/index.d.ts +0 -17
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -13
- package/dist/core/index.js.map +0 -1
- package/dist/core/lease.d.ts +0 -32
- package/dist/core/lease.d.ts.map +0 -1
- package/dist/core/lease.js +0 -81
- package/dist/core/lease.js.map +0 -1
- package/dist/core/records.d.ts +0 -49
- package/dist/core/records.d.ts.map +0 -1
- package/dist/core/records.js +0 -70
- package/dist/core/records.js.map +0 -1
- package/dist/core/recovery.d.ts +0 -43
- package/dist/core/recovery.d.ts.map +0 -1
- package/dist/core/recovery.js +0 -99
- package/dist/core/recovery.js.map +0 -1
- package/dist/core/wal.d.ts +0 -50
- package/dist/core/wal.d.ts.map +0 -1
- package/dist/core/wal.js +0 -114
- package/dist/core/wal.js.map +0 -1
- package/dist/storage/StorageAdapter.d.ts +0 -97
- package/dist/storage/StorageAdapter.d.ts.map +0 -1
- package/dist/storage/StorageAdapter.js +0 -9
- package/dist/storage/StorageAdapter.js.map +0 -1
- package/dist/storage/index.d.ts +0 -11
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -10
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts +0 -140
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts.map +0 -1
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.js +0 -403
- package/dist/storage/indexeddb/IndexedDbStorageAdapter.js.map +0 -1
- package/dist/storage/memory/MemoryStorageAdapter.d.ts +0 -76
- package/dist/storage/memory/MemoryStorageAdapter.d.ts.map +0 -1
- package/dist/storage/memory/MemoryStorageAdapter.js +0 -212
- package/dist/storage/memory/MemoryStorageAdapter.js.map +0 -1
- package/dist/storage/opfs/OpfsStorageAdapter.d.ts +0 -141
- package/dist/storage/opfs/OpfsStorageAdapter.d.ts.map +0 -1
- package/dist/storage/opfs/OpfsStorageAdapter.js +0 -400
- package/dist/storage/opfs/OpfsStorageAdapter.js.map +0 -1
|
@@ -1,400 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OPFS 存储适配器
|
|
3
|
-
*
|
|
4
|
-
* 默认持久化后端。优先使用 sync access handle(需 Worker 上下文),
|
|
5
|
-
* 主线程退化为 `createWritable` + `getFile`,两条路径共享同一套逻辑文件语义。
|
|
6
|
-
*
|
|
7
|
-
* 不把 OPFS 目录结构暴露给上层:上层只认识 `main` / `main.tmp` / `wal` / `shm`。
|
|
8
|
-
*/
|
|
9
|
-
import { LightDbError, LightDbErrorCodes } from '../../errors';
|
|
10
|
-
import { STORAGE_FILES } from '../StorageAdapter';
|
|
11
|
-
/** 逻辑文件在 OPFS 中的物理文件名 */
|
|
12
|
-
const PHYSICAL_NAMES = {
|
|
13
|
-
main: 'main.snapshot',
|
|
14
|
-
'main.tmp': 'main.snapshot.tmp',
|
|
15
|
-
wal: 'wal.log',
|
|
16
|
-
shm: 'wal.index',
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* 判断当前宿主是否提供 OPFS
|
|
20
|
-
*/
|
|
21
|
-
export function isOpfsAvailable() {
|
|
22
|
-
const storage = globalThis.navigator?.storage;
|
|
23
|
-
return typeof storage?.getDirectory === 'function';
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* OPFS 适配器工厂
|
|
27
|
-
*/
|
|
28
|
-
export class OpfsStorageAdapterFactory {
|
|
29
|
-
/** 适配器类型 */
|
|
30
|
-
kind = 'opfs';
|
|
31
|
-
/** 数据持久化 */
|
|
32
|
-
persistent = true;
|
|
33
|
-
root = null;
|
|
34
|
-
/**
|
|
35
|
-
* 打开数据库适配器
|
|
36
|
-
* @param name 数据库名
|
|
37
|
-
*/
|
|
38
|
-
async openDatabase(name) {
|
|
39
|
-
const root = await this.getRoot();
|
|
40
|
-
const directory = await this.getDirectory(root, encodeURIComponent(name), 'openDatabase');
|
|
41
|
-
return new OpfsStorageAdapter(name, directory);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* 取得 OPFS 根目录
|
|
45
|
-
*/
|
|
46
|
-
async getRoot() {
|
|
47
|
-
const storage = globalThis.navigator?.storage;
|
|
48
|
-
if (!storage) {
|
|
49
|
-
throw new LightDbError(LightDbErrorCodes.unsupported, 'OPFS is not available in this environment', {
|
|
50
|
-
operation: 'openDatabase',
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
if (!this.root) {
|
|
54
|
-
this.root = storage.getDirectory();
|
|
55
|
-
}
|
|
56
|
-
try {
|
|
57
|
-
return await this.root;
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
this.root = null;
|
|
61
|
-
throw new LightDbError(LightDbErrorCodes.io, 'failed to open the OPFS root directory', {
|
|
62
|
-
operation: 'openDatabase',
|
|
63
|
-
cause: error,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* 取得或创建目录
|
|
69
|
-
* @param parent 父目录
|
|
70
|
-
* @param name 目录名
|
|
71
|
-
* @param operation 操作名
|
|
72
|
-
*/
|
|
73
|
-
async getDirectory(parent, name, operation) {
|
|
74
|
-
try {
|
|
75
|
-
return await parent.getDirectoryHandle(name, { create: true });
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
throw new LightDbError(LightDbErrorCodes.io, `failed to open OPFS directory "${name}"`, {
|
|
79
|
-
operation,
|
|
80
|
-
cause: error,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* OPFS 存储适配器
|
|
87
|
-
*/
|
|
88
|
-
export class OpfsStorageAdapter {
|
|
89
|
-
/** 适配器类型 */
|
|
90
|
-
kind = 'opfs';
|
|
91
|
-
/** 数据持久化 */
|
|
92
|
-
persistent = true;
|
|
93
|
-
name;
|
|
94
|
-
directory;
|
|
95
|
-
closed = false;
|
|
96
|
-
constructor(name, directory) {
|
|
97
|
-
this.name = name;
|
|
98
|
-
this.directory = directory;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* 打开逻辑文件
|
|
102
|
-
* @param file 逻辑文件名
|
|
103
|
-
* @param mode 打开模式
|
|
104
|
-
*/
|
|
105
|
-
async open(file, mode = 'readwrite') {
|
|
106
|
-
this.assertOpen('storageOpen');
|
|
107
|
-
const physical = PHYSICAL_NAMES[file];
|
|
108
|
-
let handle;
|
|
109
|
-
try {
|
|
110
|
-
handle = await this.directory.getFileHandle(physical, { create: mode === 'readwrite' });
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
throw new LightDbError(LightDbErrorCodes.io, `failed to open OPFS file "${physical}"`, {
|
|
114
|
-
operation: 'storageOpen',
|
|
115
|
-
cause: error,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
return new OpfsStorageHandle(physical, handle);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* 判断文件是否存在
|
|
122
|
-
* @param file 逻辑文件名
|
|
123
|
-
*/
|
|
124
|
-
async exists(file) {
|
|
125
|
-
this.assertOpen('storageExists');
|
|
126
|
-
try {
|
|
127
|
-
await this.directory.getFileHandle(PHYSICAL_NAMES[file]);
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* 删除文件
|
|
136
|
-
* @param file 逻辑文件名
|
|
137
|
-
*/
|
|
138
|
-
async delete(file) {
|
|
139
|
-
this.assertOpen('storageDelete');
|
|
140
|
-
try {
|
|
141
|
-
await this.directory.removeEntry(PHYSICAL_NAMES[file]);
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
if (isNotFound(error)) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
throw new LightDbError(LightDbErrorCodes.io, `failed to delete OPFS file "${PHYSICAL_NAMES[file]}"`, {
|
|
148
|
-
operation: 'storageDelete',
|
|
149
|
-
cause: error,
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* 发布快照:优先 `move`,否则复制后删除
|
|
155
|
-
* @param from 源文件
|
|
156
|
-
* @param to 目标文件
|
|
157
|
-
*/
|
|
158
|
-
async rename(from, to) {
|
|
159
|
-
this.assertOpen('storageRename');
|
|
160
|
-
const fromName = PHYSICAL_NAMES[from];
|
|
161
|
-
const toName = PHYSICAL_NAMES[to];
|
|
162
|
-
try {
|
|
163
|
-
const source = await this.directory.getFileHandle(fromName);
|
|
164
|
-
if (typeof source.move === 'function') {
|
|
165
|
-
try {
|
|
166
|
-
await source.move(toName);
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
catch {
|
|
170
|
-
// 宿主声明了 `move` 但拒绝执行(目标已存在或上下文受限),退回复制路径
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
catch (error) {
|
|
175
|
-
if (!isNotFound(error)) {
|
|
176
|
-
throw new LightDbError(LightDbErrorCodes.io, `failed to rename OPFS file "${fromName}"`, {
|
|
177
|
-
operation: 'storageRename',
|
|
178
|
-
cause: error,
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
const data = await this.readAll(from);
|
|
183
|
-
const target = await this.open(to, 'readwrite');
|
|
184
|
-
try {
|
|
185
|
-
await target.truncate(0);
|
|
186
|
-
await target.write(0, data);
|
|
187
|
-
await target.sync();
|
|
188
|
-
}
|
|
189
|
-
finally {
|
|
190
|
-
await target.close();
|
|
191
|
-
}
|
|
192
|
-
await this.delete(from);
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* 列出已存在的文件
|
|
196
|
-
*/
|
|
197
|
-
async list() {
|
|
198
|
-
this.assertOpen('storageList');
|
|
199
|
-
const present = [];
|
|
200
|
-
for (const file of STORAGE_FILES) {
|
|
201
|
-
if (await this.exists(file)) {
|
|
202
|
-
present.push(file);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return present;
|
|
206
|
-
}
|
|
207
|
-
/** 关闭适配器 */
|
|
208
|
-
async close() {
|
|
209
|
-
this.closed = true;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* 读取逻辑文件全部内容
|
|
213
|
-
* @param file 逻辑文件名
|
|
214
|
-
*/
|
|
215
|
-
async readAll(file) {
|
|
216
|
-
const handle = await this.open(file, 'read');
|
|
217
|
-
try {
|
|
218
|
-
return await handle.read(0, await handle.size());
|
|
219
|
-
}
|
|
220
|
-
finally {
|
|
221
|
-
await handle.close();
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* 断言适配器未关闭
|
|
226
|
-
* @param operation 操作名
|
|
227
|
-
*/
|
|
228
|
-
assertOpen(operation) {
|
|
229
|
-
if (this.closed) {
|
|
230
|
-
throw new LightDbError(LightDbErrorCodes.sessionClosed, `OPFS database "${this.name}" is closed`, {
|
|
231
|
-
operation,
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* OPFS 文件句柄
|
|
238
|
-
*/
|
|
239
|
-
class OpfsStorageHandle {
|
|
240
|
-
physical;
|
|
241
|
-
handle;
|
|
242
|
-
syncHandle = null;
|
|
243
|
-
syncProbed = false;
|
|
244
|
-
closed = false;
|
|
245
|
-
constructor(physical, handle) {
|
|
246
|
-
this.physical = physical;
|
|
247
|
-
this.handle = handle;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* 读取指定区间
|
|
251
|
-
* @param position 起始位置
|
|
252
|
-
* @param length 期望长度
|
|
253
|
-
*/
|
|
254
|
-
async read(position, length) {
|
|
255
|
-
this.assertOpen('read');
|
|
256
|
-
if (length <= 0) {
|
|
257
|
-
return new Uint8Array(0);
|
|
258
|
-
}
|
|
259
|
-
const sync = await this.getSyncHandle();
|
|
260
|
-
if (sync) {
|
|
261
|
-
const buffer = new Uint8Array(length);
|
|
262
|
-
const bytesRead = sync.read(buffer, { at: position });
|
|
263
|
-
return buffer.subarray(0, bytesRead);
|
|
264
|
-
}
|
|
265
|
-
const file = await this.handle.getFile();
|
|
266
|
-
const data = new Uint8Array(await file.arrayBuffer());
|
|
267
|
-
if (position >= data.length) {
|
|
268
|
-
return new Uint8Array(0);
|
|
269
|
-
}
|
|
270
|
-
return data.subarray(position, Math.min(position + length, data.length));
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* 写入指定位置
|
|
274
|
-
* @param position 起始位置
|
|
275
|
-
* @param data 数据
|
|
276
|
-
*/
|
|
277
|
-
async write(position, data) {
|
|
278
|
-
this.assertOpen('write');
|
|
279
|
-
const sync = await this.getSyncHandle();
|
|
280
|
-
if (sync) {
|
|
281
|
-
sync.write(data, { at: position });
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
await this.withWritable(async (writable) => {
|
|
285
|
-
await writable.write({ type: 'write', position, data });
|
|
286
|
-
}, 'write');
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* 截断文件
|
|
290
|
-
* @param size 目标大小
|
|
291
|
-
*/
|
|
292
|
-
async truncate(size) {
|
|
293
|
-
this.assertOpen('truncate');
|
|
294
|
-
const sync = await this.getSyncHandle();
|
|
295
|
-
if (sync) {
|
|
296
|
-
sync.truncate(size);
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
await this.withWritable(async (writable) => {
|
|
300
|
-
await writable.truncate(size);
|
|
301
|
-
}, 'truncate');
|
|
302
|
-
}
|
|
303
|
-
/** 落盘 */
|
|
304
|
-
async sync() {
|
|
305
|
-
this.assertOpen('sync');
|
|
306
|
-
if (this.syncHandle) {
|
|
307
|
-
this.syncHandle.flush();
|
|
308
|
-
}
|
|
309
|
-
// `createWritable` 路径每次写入都会 close 提交,无需额外 flush。
|
|
310
|
-
}
|
|
311
|
-
/** 当前文件大小 */
|
|
312
|
-
async size() {
|
|
313
|
-
this.assertOpen('size');
|
|
314
|
-
if (this.syncHandle) {
|
|
315
|
-
return this.syncHandle.getSize();
|
|
316
|
-
}
|
|
317
|
-
const file = await this.handle.getFile();
|
|
318
|
-
return file.size;
|
|
319
|
-
}
|
|
320
|
-
/** 关闭句柄 */
|
|
321
|
-
async close() {
|
|
322
|
-
if (this.closed) {
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
this.closed = true;
|
|
326
|
-
if (this.syncHandle) {
|
|
327
|
-
this.syncHandle.close();
|
|
328
|
-
this.syncHandle = null;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* 尝试取得同步访问句柄
|
|
333
|
-
*
|
|
334
|
-
* 主线程没有 `createSyncAccessHandle` 或调用被拒绝时返回 null,退化到可写流。
|
|
335
|
-
*/
|
|
336
|
-
async getSyncHandle() {
|
|
337
|
-
if (this.syncHandle) {
|
|
338
|
-
return this.syncHandle;
|
|
339
|
-
}
|
|
340
|
-
if (this.syncProbed || typeof this.handle.createSyncAccessHandle !== 'function') {
|
|
341
|
-
return null;
|
|
342
|
-
}
|
|
343
|
-
this.syncProbed = true;
|
|
344
|
-
try {
|
|
345
|
-
this.syncHandle = await this.handle.createSyncAccessHandle();
|
|
346
|
-
return this.syncHandle;
|
|
347
|
-
}
|
|
348
|
-
catch {
|
|
349
|
-
return null;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* 使用可写流执行一次提交
|
|
354
|
-
* @param action 写入动作
|
|
355
|
-
* @param operation 操作名
|
|
356
|
-
*/
|
|
357
|
-
async withWritable(action, operation) {
|
|
358
|
-
let writable;
|
|
359
|
-
try {
|
|
360
|
-
writable = await this.handle.createWritable({ keepExistingData: true });
|
|
361
|
-
}
|
|
362
|
-
catch (error) {
|
|
363
|
-
throw new LightDbError(LightDbErrorCodes.io, `failed to open OPFS writable "${this.physical}"`, {
|
|
364
|
-
operation,
|
|
365
|
-
cause: error,
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
try {
|
|
369
|
-
await action(writable);
|
|
370
|
-
}
|
|
371
|
-
catch (error) {
|
|
372
|
-
throw new LightDbError(LightDbErrorCodes.io, `failed to write OPFS file "${this.physical}"`, {
|
|
373
|
-
operation,
|
|
374
|
-
cause: error,
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
finally {
|
|
378
|
-
await writable.close();
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* 断言句柄未关闭
|
|
383
|
-
* @param operation 操作名
|
|
384
|
-
*/
|
|
385
|
-
assertOpen(operation) {
|
|
386
|
-
if (this.closed) {
|
|
387
|
-
throw new LightDbError(LightDbErrorCodes.sessionClosed, `OPFS handle "${this.physical}" is closed`, {
|
|
388
|
-
operation,
|
|
389
|
-
});
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
/**
|
|
394
|
-
* 判断是否为「文件不存在」错误
|
|
395
|
-
* @param error 错误
|
|
396
|
-
*/
|
|
397
|
-
function isNotFound(error) {
|
|
398
|
-
return typeof error === 'object' && error !== null && error.name === 'NotFoundError';
|
|
399
|
-
}
|
|
400
|
-
//# sourceMappingURL=OpfsStorageAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpfsStorageAdapter.js","sourceRoot":"","sources":["../../../src/storage/opfs/OpfsStorageAdapter.ts"],"names":[],"mappings":"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"}
|