datafolder 1.0.2 → 1.0.4
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 +34 -31
- package/index.js +1 -3
- package/package.json +5 -3
- package/sample.js +37 -37
- package/scripts/airbnb.js +10 -11
- package/scripts/airbnb2.js +10 -11
- package/scripts/airbnb2_queries.js +20 -22
- package/scripts/airbnb_queries.js +23 -22
- package/scripts/downloadFile.js +29 -31
- package/scripts/express.js +7 -5
- package/scripts/fastify.js +12 -11
- package/scripts/flights.js +9 -9
- package/scripts/flights2.js +9 -9
- package/scripts/flights2_queries.js +107 -105
- package/scripts/flights_queries.js +113 -109
- package/src/QyAcl.js +153 -152
- package/src/QyAclSaver.js +16 -10
- package/src/QyAclSaver_Worker.js +21 -15
- package/src/QyAclWriter.js +23 -13
- package/src/QyBatch.js +298 -263
- package/src/QyBinWriter.js +49 -37
- package/src/QyCD.js +13 -14
- package/src/QyCache.js +177 -140
- package/src/QyCompressor.js +71 -45
- package/src/QyCompressor_Worker.js +17 -9
- package/src/QyDB.js +67 -12
- package/src/QyDefaultOptions.js +13 -10
- package/src/QyDir.js +89 -53
- package/src/QyFetch.js +27 -24
- package/src/QyFile.js +89 -77
- package/src/QyFileContentUtils.js +129 -132
- package/src/QyFileLogger.js +63 -41
- package/src/QyIndex.js +175 -197
- package/src/QyIndexPropTree.js +25 -25
- package/src/QyIntersectNode.js +34 -31
- package/src/QyItem.js +54 -52
- package/src/QyJsonSaver.js +12 -6
- package/src/QyKVData.js +279 -245
- package/src/QyKVDataCleaner.js +12 -6
- package/src/QyKVDataCleaner_Worker.js +77 -59
- package/src/QyKVDataLoader.js +67 -46
- package/src/QyKVDataSaver.js +15 -9
- package/src/QyKVDataSaver_Worker.js +83 -60
- package/src/QyLogFileSaver.js +12 -6
- package/src/QyLogFileSaver_Worker.js +24 -14
- package/src/QyLogger.js +51 -40
- package/src/QyMessageWorker.js +43 -29
- package/src/QyMessager.js +74 -54
- package/src/QyMessager_Run.js +20 -7
- package/src/QyMod.js +15 -11
- package/src/QyOpRunner.js +58 -41
- package/src/QyQueue.js +35 -30
- package/src/QySaver.js +52 -29
- package/src/QySnapshotCompactor.js +15 -9
- package/src/QySnapshotCompactor_Worker.js +131 -110
- package/src/QySnapshotSaver.js +15 -9
- package/src/QySnapshotSaver_Worker.js +125 -110
- package/src/QySnapshots.js +264 -242
- package/src/QyStructure.js +35 -27
- package/src/QyTrigger.js +62 -55
- package/src/QyUnionNode.js +54 -56
- package/src/QyUtils.js +170 -158
- package/src/QyWorker.js +34 -20
- package/src/hackernews.js +63 -71
- package/src/rpc/getFileContent.js +7 -7
- package/src/rpc/getSubItems.js +12 -28
- package/src/rpc/queryFiles.js +2 -25
- package/src/simulate.js +85 -80
- package/src/simulate2.js +77 -78
- package/src/soc_pokec.js +44 -32
- package/static/datafolderui/QyStyledElement.js +12 -12
- package/static/datafolderui/QyUIFolderTree.js +20 -20
- package/static/datafolderui/QyUIUtils.js +8 -8
- package/static/datafolderui/explore-tree.js +31 -31
- package/static/datafolderui/folder-tree.js +2 -2
- package/static/datafolderui/hscrpt.js +9 -17
- package/static/datafolderui/json-view.js +3 -5
- package/static/datafolderui/kv-input.js +15 -15
- package/static/datafolderui/list-input.js +17 -17
- package/static/datafolderui/main-page.js +18 -18
- package/static/datafolderui/num-input.js +5 -5
- package/static/datafolderui/query-editor.js +6 -1
- package/static/datafolderui/querySelectorShadowRoot.js +15 -19
- package/static/datafolderui/resizable-input.js +18 -18
package/src/QySaver.js
CHANGED
|
@@ -1,11 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
import s, {
|
|
2
|
+
readFile as i
|
|
3
|
+
} from "node:fs/promises";
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
import {
|
|
6
|
+
join as c
|
|
7
|
+
} from "node:path";
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
logger as m
|
|
11
|
+
} from "./QyLogger.js";
|
|
12
|
+
|
|
13
|
+
import {
|
|
14
|
+
toBuffer as r,
|
|
15
|
+
folderOrFileExists as u,
|
|
16
|
+
getSizeStr as o,
|
|
17
|
+
sleep as g,
|
|
18
|
+
getSize as n,
|
|
19
|
+
ensureParentDir as l
|
|
20
|
+
} from "./QyUtils.js";
|
|
21
|
+
|
|
22
|
+
import {
|
|
23
|
+
getDefaultOptions as t
|
|
24
|
+
} from "./QyDefaultOptions.js";
|
|
25
|
+
|
|
26
|
+
class e {
|
|
4
27
|
constructor(e, r) {
|
|
5
28
|
Object.assign(this, {
|
|
6
29
|
dataFolder: e,
|
|
7
30
|
options: {
|
|
8
|
-
...
|
|
31
|
+
...t("QySaver"),
|
|
9
32
|
...r
|
|
10
33
|
}
|
|
11
34
|
});
|
|
@@ -17,67 +40,67 @@ class QySaver {
|
|
|
17
40
|
return e;
|
|
18
41
|
}
|
|
19
42
|
processBeforeSave(e) {
|
|
20
|
-
return
|
|
43
|
+
return r(e);
|
|
21
44
|
}
|
|
22
45
|
async loadFromFile(e, r) {
|
|
23
|
-
var t =
|
|
24
|
-
if (null != r && !await
|
|
46
|
+
var t = c(this.dataFolder, e);
|
|
47
|
+
if (null != r && !await u(t)) return r;
|
|
25
48
|
try {
|
|
26
|
-
var a = await
|
|
27
|
-
return
|
|
49
|
+
var a = await i(t);
|
|
50
|
+
return m.info(`Loading "${t}" succeeded. Total size:${o(a.length)}.`),
|
|
28
51
|
this.processAfterLoad(a, e);
|
|
29
52
|
} catch (e) {
|
|
30
53
|
if (null != r) return r;
|
|
31
|
-
|
|
54
|
+
m.error(`Loading "${t}" failed:`, e);
|
|
32
55
|
}
|
|
33
56
|
}
|
|
34
57
|
async saveToFile(e, t, r = !1) {
|
|
35
58
|
var {
|
|
36
59
|
dataFolder: a,
|
|
37
60
|
options: i
|
|
38
|
-
} = this, s =
|
|
39
|
-
if (!r && await
|
|
61
|
+
} = this, s = c(a, t);
|
|
62
|
+
if (!r && await u(s)) m.error(s + " already exists."); else {
|
|
40
63
|
var {
|
|
41
64
|
retryTimes: o,
|
|
42
|
-
retryIntervalFactor:
|
|
43
|
-
maxRetryInterval:
|
|
44
|
-
} = i,
|
|
65
|
+
retryIntervalFactor: n,
|
|
66
|
+
maxRetryInterval: l
|
|
67
|
+
} = i, d = c(a, ".tmp", t), f = this.processBeforeSave(e, t);
|
|
45
68
|
let r;
|
|
46
69
|
for (let e = 0; e < o; ++e) {
|
|
47
|
-
if (await this._saveTmpFileAndRename(
|
|
48
|
-
r = r ? Math.min(
|
|
49
|
-
await
|
|
70
|
+
if (await this._saveTmpFileAndRename(f, d, s)) return !0;
|
|
71
|
+
r = r ? Math.min(l, r * n) : 1, m.warn(`Retrying to create ${s} in ${r} seconds.`),
|
|
72
|
+
await g(r);
|
|
50
73
|
}
|
|
51
|
-
|
|
74
|
+
m.error(`Failed to create ${t} after retrying ${o} times.`);
|
|
52
75
|
}
|
|
53
76
|
return !1;
|
|
54
77
|
}
|
|
55
78
|
async _saveTmpFileAndRename(e, r, t) {
|
|
56
79
|
var a = e.length;
|
|
57
|
-
if (await this._saveContent(r, e) != a)
|
|
58
|
-
if (await
|
|
80
|
+
if (await this._saveContent(r, e) != a) m.error(`Creating ${t} failed when trying to create ${r} first.`); else try {
|
|
81
|
+
if (await s.rename(r, t), await n(t) === a) return m.info(`Renaming ${r} to ${t} succeeded.`),
|
|
59
82
|
!0;
|
|
60
|
-
|
|
83
|
+
m.error(t + " size is not correct.");
|
|
61
84
|
} catch (e) {
|
|
62
|
-
|
|
85
|
+
m.error(`Renaming ${r} to ${t} failed:`, e);
|
|
63
86
|
}
|
|
64
87
|
return !1;
|
|
65
88
|
}
|
|
66
89
|
async _saveContent(r, e) {
|
|
67
90
|
var t = e.length;
|
|
68
91
|
try {
|
|
69
|
-
await
|
|
92
|
+
await l(r), await s.writeFile(r, e, {
|
|
70
93
|
flush: !0
|
|
71
94
|
});
|
|
72
|
-
var a = `Saving ${r} size ` +
|
|
73
|
-
return i === t ?
|
|
95
|
+
var a = `Saving ${r} size ` + o(t), i = await n(r);
|
|
96
|
+
return i === t ? m.info(a + " succeeded.") : m.warn(a + " failed."),
|
|
74
97
|
i;
|
|
75
98
|
} catch (e) {
|
|
76
|
-
return
|
|
99
|
+
return m.error(`Saving "${r}" failed:`, e), !1;
|
|
77
100
|
}
|
|
78
101
|
}
|
|
79
102
|
}
|
|
80
103
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
104
|
+
export {
|
|
105
|
+
e as QySaver
|
|
106
|
+
};
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import {
|
|
2
|
+
QyMessager as o
|
|
3
|
+
} from "./QyMessager.js";
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import {
|
|
6
|
+
getDefaultOptions as a
|
|
7
|
+
} from "./QyDefaultOptions.js";
|
|
8
|
+
|
|
9
|
+
class s extends o {
|
|
10
|
+
constructor(o, s, t) {
|
|
11
|
+
super(o, "QySnapshotCompactor_Worker.js", {
|
|
12
|
+
kvFolder: s,
|
|
7
13
|
options: t = {
|
|
8
|
-
...
|
|
14
|
+
...a("QySnapshotCompactor"),
|
|
9
15
|
...t
|
|
10
16
|
}
|
|
11
17
|
}, t, [], [ "compactSnapshots", "saveSnapshotInfos" ]);
|
|
12
18
|
}
|
|
13
19
|
}
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
21
|
+
export {
|
|
22
|
+
s as QySnapshotCompactor
|
|
23
|
+
};
|
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
readBufferAsync
|
|
5
|
-
} = require("./QyUtils.js");
|
|
1
|
+
import {
|
|
2
|
+
join as t
|
|
3
|
+
} from "node:path";
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
import {
|
|
6
|
+
open as h
|
|
7
|
+
} from "node:fs/promises";
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
getDefaultOptions as e
|
|
11
|
+
} from "./QyDefaultOptions.js";
|
|
12
|
+
|
|
13
|
+
import {
|
|
14
|
+
QyMessageWorker as a
|
|
15
|
+
} from "./QyMessageWorker.js";
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
QyKVDataCleaner as p
|
|
19
|
+
} from "./QyKVDataCleaner.js";
|
|
20
|
+
|
|
21
|
+
import {
|
|
22
|
+
QySnapshots as n
|
|
23
|
+
} from "./QySnapshots.js";
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
isEmptyObj as r,
|
|
27
|
+
listToMap as y,
|
|
28
|
+
readBufferAsync as l
|
|
29
|
+
} from "./QyUtils.js";
|
|
30
|
+
|
|
31
|
+
class s extends a {
|
|
8
32
|
constructor({
|
|
9
33
|
kvFolder: a,
|
|
10
34
|
options: s
|
|
11
35
|
}) {
|
|
12
36
|
super(s = {
|
|
13
|
-
...
|
|
37
|
+
...e("QySnapshotCompactor_Worker"),
|
|
14
38
|
...s
|
|
15
39
|
}, [], [ "compactSnapshots", "saveSnapshotInfos" ]);
|
|
16
|
-
var
|
|
40
|
+
var o = t(a, "snapshot");
|
|
17
41
|
Object.assign(this, {
|
|
18
42
|
kvFolder: a,
|
|
19
|
-
snapshotFolder:
|
|
20
|
-
qySnapshots: new
|
|
21
|
-
qyKVDataCleaner: new
|
|
43
|
+
snapshotFolder: o,
|
|
44
|
+
qySnapshots: new n(o, s),
|
|
45
|
+
qyKVDataCleaner: new p(this, a, s),
|
|
22
46
|
pMInfoMap: {},
|
|
23
47
|
vLInfoMap: {}
|
|
24
48
|
});
|
|
@@ -29,123 +53,120 @@ class QySnapshotCompactor_Worker extends QyMessageWorker {
|
|
|
29
53
|
async stop() {
|
|
30
54
|
await this.qyKVDataCleaner.stop();
|
|
31
55
|
}
|
|
32
|
-
async _op_compactSnapshots(a,
|
|
33
|
-
var
|
|
56
|
+
async _op_compactSnapshots(a, o, s) {
|
|
57
|
+
var t = {}, e = [];
|
|
34
58
|
if (0 < a.length) {
|
|
35
|
-
let s =
|
|
36
|
-
|
|
59
|
+
let s = t.pMUpdates = {};
|
|
60
|
+
e.push(...a.map(a => (async (a, s, o) => {
|
|
61
|
+
var {
|
|
62
|
+
qySnapshots: t,
|
|
63
|
+
pMInfoMap: e
|
|
64
|
+
} = a, {
|
|
65
|
+
snapshotNum: p,
|
|
66
|
+
info: n,
|
|
67
|
+
prefixPM: i
|
|
68
|
+
} = s;
|
|
69
|
+
(null == i || r(i) || await f(a, s)) && (await t.savePosMap(s),
|
|
70
|
+
e[p] = n, o[p] = s.prefixPM);
|
|
71
|
+
})(this, a, s)));
|
|
37
72
|
}
|
|
38
|
-
if (0 <
|
|
39
|
-
let s =
|
|
40
|
-
|
|
73
|
+
if (0 < o.length) {
|
|
74
|
+
let s = t.vLUpdates = {};
|
|
75
|
+
e.push(...o.map(a => (async (a, s, o) => {
|
|
76
|
+
var t, {
|
|
77
|
+
qySnapshots: e,
|
|
78
|
+
vLInfoMap: p
|
|
79
|
+
} = a;
|
|
80
|
+
await f(a, s) && (await M(a, s), await e.saveKeyValueMap(s), {
|
|
81
|
+
snapshotNum: a,
|
|
82
|
+
info: e,
|
|
83
|
+
posMap: s,
|
|
84
|
+
prefixPM: t
|
|
85
|
+
} = s, p[a] = e, o[a] = {
|
|
86
|
+
posMap: s,
|
|
87
|
+
prefixPM: t
|
|
88
|
+
});
|
|
89
|
+
})(this, a, s)));
|
|
41
90
|
}
|
|
42
|
-
0 < s.length &&
|
|
43
|
-
|
|
91
|
+
0 < s.length && e.push((async (a, s, o) => {
|
|
92
|
+
var t, {
|
|
93
|
+
qySnapshots: e,
|
|
94
|
+
vLInfoMap: p
|
|
95
|
+
} = a, n = e.getMaxCombinedSnapshot(s), {
|
|
96
|
+
snapshotNum: i,
|
|
97
|
+
info: r,
|
|
98
|
+
keyValueMap: f
|
|
99
|
+
} = (await M(a, n), n), h = (Object.assign(n, {
|
|
100
|
+
posMap: void 0,
|
|
101
|
+
prefixPM: void 0
|
|
102
|
+
}), []);
|
|
103
|
+
for (t of s) t != n && (h.push(t.snapshotNum), await M(a, t), Object.assign(f, t.keyValueMap),
|
|
104
|
+
Object.assign(t, {
|
|
105
|
+
keyValueMap: void 0,
|
|
106
|
+
posMap: void 0,
|
|
107
|
+
prefixPM: void 0
|
|
108
|
+
}));
|
|
109
|
+
await e.saveKeyValueMap(n), p[i] = r, o.combineUpdate = {
|
|
110
|
+
snapshotNum: i,
|
|
111
|
+
combinedSnapshotNumList: h,
|
|
112
|
+
posMap: n.posMap
|
|
113
|
+
};
|
|
114
|
+
})(this, s, t)), await Promise.all(e), this.castParent("onCompactUpdates", t);
|
|
44
115
|
}
|
|
45
116
|
async _op_saveSnapshotInfos(a) {
|
|
46
|
-
var s,
|
|
47
|
-
qySnapshots:
|
|
48
|
-
pMInfoMap:
|
|
117
|
+
var s, o, {
|
|
118
|
+
qySnapshots: t,
|
|
119
|
+
pMInfoMap: e,
|
|
49
120
|
vLInfoMap: p,
|
|
50
121
|
qyKVDataCleaner: n
|
|
51
122
|
} = this, i = (Object.assign(this, {
|
|
52
123
|
pMInfoMap: {},
|
|
53
124
|
vLInfoMap: {}
|
|
54
|
-
}),
|
|
55
|
-
for (s in
|
|
56
|
-
for (
|
|
125
|
+
}), y(a)), r = [];
|
|
126
|
+
for (s in e) s in i && r.push(t.saveSnapshotInfo(s, e[s]));
|
|
127
|
+
for (o in p) o in i && r.push(t.saveSnapshotInfo(o, p[o]));
|
|
57
128
|
if (0 < r.length) {
|
|
58
129
|
await Promise.all(r);
|
|
59
|
-
var h, l
|
|
60
|
-
for (
|
|
61
|
-
var
|
|
62
|
-
|
|
130
|
+
var f, h, l = [];
|
|
131
|
+
for (f in e) {
|
|
132
|
+
var M = e[f];
|
|
133
|
+
l.push([ f, M.pMVersion ]);
|
|
63
134
|
}
|
|
64
|
-
for (
|
|
65
|
-
var
|
|
66
|
-
|
|
135
|
+
for (h in p) {
|
|
136
|
+
var v = p[h];
|
|
137
|
+
l.push([ h, v.pMVersion ]), n.cleanVLFiles(h, v.vLVersion);
|
|
67
138
|
}
|
|
68
|
-
n.cleanPMFiles(
|
|
139
|
+
n.cleanPMFiles(l);
|
|
69
140
|
}
|
|
70
141
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Object.assign(r, e.keyValueMap), Object.assign(e, {
|
|
85
|
-
keyValueMap: void 0,
|
|
86
|
-
posMap: void 0,
|
|
87
|
-
prefixPM: void 0
|
|
88
|
-
}));
|
|
89
|
-
await o.saveKeyValueMap(p), t[n] = i, s.combineUpdate = {
|
|
90
|
-
snapshotNum: n,
|
|
91
|
-
combinedSnapshotNumList: h,
|
|
92
|
-
posMap: p.posMap
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
async _compactValueList(a, s) {
|
|
96
|
-
var e, o, {
|
|
97
|
-
qySnapshots: t,
|
|
98
|
-
vLInfoMap: p
|
|
99
|
-
} = this;
|
|
100
|
-
await this._loadPosMap(a) && (await this._loadKVMap(a), await t.saveKeyValueMap(a),
|
|
101
|
-
{
|
|
102
|
-
snapshotNum: t,
|
|
103
|
-
info: a,
|
|
104
|
-
posMap: e,
|
|
105
|
-
prefixPM: o
|
|
106
|
-
} = a, p[t] = a, s[t] = {
|
|
107
|
-
posMap: e,
|
|
108
|
-
prefixPM: o
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
async _compactPosMap(a, s) {
|
|
112
|
-
var {
|
|
113
|
-
qySnapshots: e,
|
|
114
|
-
pMInfoMap: o
|
|
115
|
-
} = this, {
|
|
116
|
-
snapshotNum: t,
|
|
117
|
-
info: p,
|
|
118
|
-
prefixPM: n
|
|
119
|
-
} = a;
|
|
120
|
-
(null == n || isEmptyObj(n) || await this._loadPosMap(a)) && (await e.savePosMap(a),
|
|
121
|
-
o[t] = p, s[t] = a.prefixPM);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
async function f(a, s) {
|
|
145
|
+
var o = a.qySnapshots;
|
|
146
|
+
let {
|
|
147
|
+
prefixPM: t,
|
|
148
|
+
posMap: e
|
|
149
|
+
} = s;
|
|
150
|
+
var p, n = o.getPMFilePath(s), i = await h(n);
|
|
151
|
+
for (p of Object.keys(t).sort()) {
|
|
152
|
+
var [ r, f ] = t[p], r = await l(n, i, r, f);
|
|
153
|
+
if (!r) return void i.close();
|
|
154
|
+
o.iterPMBuffer(r, (a, s) => e[a] = s);
|
|
122
155
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
var
|
|
130
|
-
|
|
131
|
-
|
|
156
|
+
return i.close(), !0;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async function M(a, s) {
|
|
160
|
+
var o, a = a.qySnapshots, t = s.posMap, e = s.keyValueMap = {}, p = a.getVLFilePath(s), n = await h(p);
|
|
161
|
+
for (o of Object.keys(t).sort()) {
|
|
162
|
+
var [ i, r ] = t[o];
|
|
163
|
+
if (0 < r) {
|
|
164
|
+
i = await l(p, n, i, r);
|
|
132
165
|
if (!i) return void n.close();
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
return n.close(), !0;
|
|
136
|
-
}
|
|
137
|
-
async _loadKVMap(a) {
|
|
138
|
-
var s, e = this.qySnapshots, o = a.posMap, t = a.keyValueMap = {}, p = e.getVLFilePath(a), n = await fsPromises.open(p);
|
|
139
|
-
for (s of Object.keys(o).sort()) {
|
|
140
|
-
var [ i, r ] = o[s];
|
|
141
|
-
if (0 < r) {
|
|
142
|
-
i = await readBufferAsync(p, n, i, r);
|
|
143
|
-
if (!i) return void n.close();
|
|
144
|
-
t[s] = i;
|
|
145
|
-
} else t[s] = void 0;
|
|
146
|
-
}
|
|
147
|
-
return n.close(), !0;
|
|
166
|
+
e[o] = i;
|
|
167
|
+
} else e[o] = void 0;
|
|
148
168
|
}
|
|
169
|
+
return n.close(), !0;
|
|
149
170
|
}
|
|
150
171
|
|
|
151
|
-
|
|
172
|
+
export default s;
|
package/src/QySnapshotSaver.js
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import {
|
|
2
|
+
QyMessager as s
|
|
3
|
+
} from "./QyMessager.js";
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import {
|
|
6
|
+
getDefaultOptions as o
|
|
7
|
+
} from "./QyDefaultOptions.js";
|
|
8
|
+
|
|
9
|
+
class e extends s {
|
|
10
|
+
constructor(s, e, a) {
|
|
11
|
+
super(s, "QySnapshotSaver_Worker.js", {
|
|
12
|
+
kvFolder: e,
|
|
7
13
|
options: a = {
|
|
8
|
-
...
|
|
14
|
+
...o("QySnapshotSaver"),
|
|
9
15
|
...a
|
|
10
16
|
}
|
|
11
17
|
}, a, [], [ "saveSnapshot", "castSave", "releaseSnapshot" ]);
|
|
12
18
|
}
|
|
13
19
|
}
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
21
|
+
export {
|
|
22
|
+
e as QySnapshotSaver
|
|
23
|
+
};
|