datafolder 1.0.2 → 1.0.3

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.
Files changed (82) hide show
  1. package/README.md +9 -3
  2. package/index.js +2 -3
  3. package/package.json +3 -2
  4. package/sample.js +37 -37
  5. package/scripts/airbnb.js +10 -11
  6. package/scripts/airbnb2.js +10 -11
  7. package/scripts/airbnb2_queries.js +11 -11
  8. package/scripts/airbnb_queries.js +15 -14
  9. package/scripts/downloadFile.js +29 -31
  10. package/scripts/express.js +5 -4
  11. package/scripts/fastify.js +12 -11
  12. package/scripts/flights.js +8 -8
  13. package/scripts/flights2.js +9 -9
  14. package/scripts/flights2_queries.js +19 -16
  15. package/scripts/flights_queries.js +18 -13
  16. package/src/QyAcl.js +153 -152
  17. package/src/QyAclSaver.js +16 -10
  18. package/src/QyAclSaver_Worker.js +21 -15
  19. package/src/QyAclWriter.js +23 -13
  20. package/src/QyBatch.js +298 -263
  21. package/src/QyBinWriter.js +49 -37
  22. package/src/QyCD.js +13 -14
  23. package/src/QyCache.js +177 -140
  24. package/src/QyCompressor.js +71 -45
  25. package/src/QyCompressor_Worker.js +17 -9
  26. package/src/QyDB.js +41 -12
  27. package/src/QyDefaultOptions.js +13 -10
  28. package/src/QyDir.js +89 -53
  29. package/src/QyFetch.js +27 -24
  30. package/src/QyFile.js +89 -77
  31. package/src/QyFileContentUtils.js +129 -132
  32. package/src/QyFileLogger.js +63 -41
  33. package/src/QyIndex.js +175 -197
  34. package/src/QyIndexPropTree.js +25 -25
  35. package/src/QyIntersectNode.js +34 -31
  36. package/src/QyItem.js +54 -52
  37. package/src/QyJsonSaver.js +12 -6
  38. package/src/QyKVData.js +279 -245
  39. package/src/QyKVDataCleaner.js +12 -6
  40. package/src/QyKVDataCleaner_Worker.js +77 -59
  41. package/src/QyKVDataLoader.js +67 -46
  42. package/src/QyKVDataSaver.js +15 -9
  43. package/src/QyKVDataSaver_Worker.js +83 -60
  44. package/src/QyLogFileSaver.js +12 -6
  45. package/src/QyLogFileSaver_Worker.js +24 -14
  46. package/src/QyLogger.js +51 -40
  47. package/src/QyMessageWorker.js +43 -29
  48. package/src/QyMessager.js +74 -54
  49. package/src/QyMessager_Run.js +20 -7
  50. package/src/QyMod.js +15 -11
  51. package/src/QyOpRunner.js +58 -41
  52. package/src/QyQueue.js +35 -30
  53. package/src/QySaver.js +52 -29
  54. package/src/QySnapshotCompactor.js +15 -9
  55. package/src/QySnapshotCompactor_Worker.js +131 -110
  56. package/src/QySnapshotSaver.js +15 -9
  57. package/src/QySnapshotSaver_Worker.js +125 -110
  58. package/src/QySnapshots.js +260 -241
  59. package/src/QyStructure.js +35 -27
  60. package/src/QyTrigger.js +62 -55
  61. package/src/QyUnionNode.js +54 -56
  62. package/src/QyUtils.js +170 -158
  63. package/src/QyWorker.js +34 -20
  64. package/src/hackernews.js +63 -71
  65. package/src/rpc/getFileContent.js +7 -7
  66. package/src/rpc/getSubItems.js +22 -22
  67. package/src/simulate.js +85 -80
  68. package/src/simulate2.js +77 -78
  69. package/src/soc_pokec.js +44 -32
  70. package/static/datafolderui/QyStyledElement.js +12 -12
  71. package/static/datafolderui/QyUIFolderTree.js +20 -20
  72. package/static/datafolderui/QyUIUtils.js +8 -8
  73. package/static/datafolderui/explore-tree.js +31 -31
  74. package/static/datafolderui/folder-tree.js +2 -2
  75. package/static/datafolderui/hscrpt.js +9 -17
  76. package/static/datafolderui/json-view.js +3 -5
  77. package/static/datafolderui/kv-input.js +15 -15
  78. package/static/datafolderui/list-input.js +17 -17
  79. package/static/datafolderui/main-page.js +18 -18
  80. package/static/datafolderui/num-input.js +5 -5
  81. package/static/datafolderui/querySelectorShadowRoot.js +15 -19
  82. package/static/datafolderui/resizable-input.js +18 -18
@@ -1,37 +1,74 @@
1
- let path = require("node:path"), fsPromises = require("node:fs/promises"), getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions, QyMessageWorker = require("./QyMessageWorker.js").QyMessageWorker, {
2
- folderOrFileExists,
3
- ensureDir
4
- } = require("./QyUtils.js"), qyCompressor = require("./QyCompressor.js");
1
+ import {
2
+ join as c
3
+ } from "node:path";
5
4
 
6
- class QyKVDataCleaner_Worker extends QyMessageWorker {
5
+ import {
6
+ rm as m,
7
+ rename as r,
8
+ readdir as d
9
+ } from "node:fs/promises";
10
+
11
+ import {
12
+ getDefaultOptions as o
13
+ } from "./QyDefaultOptions.js";
14
+
15
+ import {
16
+ QyMessageWorker as e
17
+ } from "./QyMessageWorker.js";
18
+
19
+ import {
20
+ folderOrFileExists as f,
21
+ ensureDir as h
22
+ } from "./QyUtils.js";
23
+
24
+ import {
25
+ compressFile as t,
26
+ Zip_File_Extension as i
27
+ } from "./QyCompressor.js";
28
+
29
+ class s extends e {
7
30
  constructor({
8
31
  kvFolder: e,
9
32
  options: s
10
33
  }) {
11
34
  super(s = {
12
- ...getDefaultOptions("QyKVDataCleaner_Worker"),
35
+ ...o("QyKVDataCleaner_Worker"),
13
36
  ...s
14
37
  }, [ "start", "stop" ], [ "cleanAclFiles", "cleanPMFiles", "cleanVLFiles", "removeSnapshotsFiles" ]);
15
- var s = path.join(e, "history"), a = path.join(e, "snapshot");
38
+ var s = c(e, "history"), a = c(e, "snapshot");
16
39
  Object.assign(this, {
17
40
  kvFolder: e,
18
41
  snapshotFolder: a,
19
- snapshotInfoFolder: path.join(a, "info"),
20
- aclFolder: path.join(e, "acl"),
21
- historyAclFolder: path.join(s, "acl"),
22
- historySnapshotFolder: path.join(s, "snapshot")
42
+ snapshotInfoFolder: c(a, "info"),
43
+ aclFolder: c(e, "acl"),
44
+ historyAclFolder: c(s, "acl"),
45
+ historySnapshotFolder: c(s, "snapshot")
23
46
  });
24
47
  }
25
48
  _op_start() {}
26
49
  _op_stop() {}
27
50
  async _op_cleanAclFiles(e) {
28
- await this._cleanOutdatedAclFiles(e);
51
+ var s = this, a = e, e = s.aclFolder;
52
+ if (await f(e)) {
53
+ var o, r = [];
54
+ for (o of (await d(e)).filter(e => /^[1-9]/.test(e))) parseInt(o) <= a && r.push((async (e, s) => {
55
+ var {
56
+ aclFolder: a,
57
+ historyAclFolder: o
58
+ } = e;
59
+ return await h(o), F(e, s, a, o);
60
+ })(s, o));
61
+ 0 < r.length && await Promise.allSettled(r);
62
+ }
29
63
  }
30
64
  async _op_cleanPMFiles(e) {
31
- await Promise.allSettled(e.map(([ e, s ]) => this._cleanOutdatedPMFiles(e, s)));
65
+ await Promise.allSettled(e.map(([ e, s ]) => {
66
+ return a = this, o = e, r = s, Promise.all([ "pM", "prefixPM" ].map(e => l(a, o, r, e)));
67
+ var a, o, r;
68
+ }));
32
69
  }
33
70
  async _op_cleanVLFiles(e, s) {
34
- await this._cleanOutdatedVLFiles(e, s);
71
+ await l(this, e, s, "vL");
35
72
  }
36
73
  async _op_removeSnapshotsFiles(e) {
37
74
  let {
@@ -39,56 +76,37 @@ class QyKVDataCleaner_Worker extends QyMessageWorker {
39
76
  snapshotInfoFolder: a
40
77
  } = this;
41
78
  await Promise.all(e.map(async e => {
42
- await fsPromises.rm(path.join(a, e + ".json")), await fsPromises.rm(path.join(s, "" + e), {
79
+ await m(c(a, e + ".json")), await m(c(s, "" + e), {
43
80
  recursive: !0
44
81
  });
45
82
  }));
46
83
  }
47
- async _cleanOutdatedAclFiles(e) {
48
- var s = this.aclFolder;
49
- if (await folderOrFileExists(s)) {
50
- var a, t = [];
51
- for (a of (await fsPromises.readdir(s)).filter(e => /^[1-9]/.test(e))) parseInt(a) <= e && t.push(this._cleanOutdatedAclFile(a));
52
- 0 < t.length && await Promise.allSettled(t);
53
- }
54
- }
55
- _cleanOutdatedPMFiles(s, a) {
56
- return Promise.all([ "pM", "prefixPM" ].map(e => this._cleanOutdatedSnapshotFiles(s, a, e)));
57
- }
58
- _cleanOutdatedVLFiles(e, s) {
59
- return this._cleanOutdatedSnapshotFiles(e, s, "vL");
60
- }
61
- async _cleanOutdatedSnapshotFiles(s, a, t) {
62
- var {
63
- snapshotFolder: e,
64
- historySnapshotFolder: r
65
- } = this, i = path.join(e, "" + s);
66
- if (await folderOrFileExists(i)) {
67
- let e;
68
- var o, l = [];
69
- for (o of await fsPromises.readdir(i)) {
70
- var n = new RegExp("^([0-9]+)_" + t).exec(o);
71
- n && (n = parseInt(n[1])) < a && (1 == n ? (e || (e = path.join(r, "" + s),
72
- await ensureDir(e)), l.push(this._cleanOutdatedFile(o, i, e))) : (n = path.join(i, o),
73
- logger.info("Removing " + n), l.push(fsPromises.rm(n))));
74
- }
75
- 0 < l.length && await Promise.allSettled(l);
84
+ }
85
+
86
+ function F(e, s, a, o) {
87
+ a = c(a, s), o = c(o, s);
88
+ return e.options.compressRedundantFile ? t(a, o + i, {
89
+ override: !0,
90
+ removeSrcAfterSuccess: !0
91
+ }) : (logger.info(`rename ${a} to ` + o), r(a, o));
92
+ }
93
+
94
+ async function l(s, a, o, r) {
95
+ var {
96
+ snapshotFolder: e,
97
+ historySnapshotFolder: t
98
+ } = s, i = c(e, "" + a);
99
+ if (await f(i)) {
100
+ let e;
101
+ var l, n = [];
102
+ for (l of await d(i)) {
103
+ var p = new RegExp("^([0-9]+)_" + r).exec(l);
104
+ p && (p = parseInt(p[1])) < o && (1 == p ? (e || (e = c(t, "" + a),
105
+ await h(e)), n.push(F(s, l, i, e))) : (p = c(i, l), logger.info("Removing " + p),
106
+ n.push(m(p))));
76
107
  }
77
- }
78
- async _cleanOutdatedAclFile(e) {
79
- var {
80
- aclFolder: s,
81
- historyAclFolder: a
82
- } = this;
83
- return await ensureDir(a), this._cleanOutdatedFile(e, s, a);
84
- }
85
- _cleanOutdatedFile(e, s, a) {
86
- s = path.join(s, e), a = path.join(a, e);
87
- return this.options.compressRedundantFile ? qyCompressor.compressFile(s, a + qyCompressor.Zip_File_Extension, {
88
- override: !0,
89
- removeSrcAfterSuccess: !0
90
- }) : (logger.info(`rename ${s} to ` + a), fsPromises.rename(s, a));
108
+ 0 < n.length && await Promise.allSettled(n);
91
109
  }
92
110
  }
93
111
 
94
- module.exports = QyKVDataCleaner_Worker;
112
+ export default s;
@@ -1,65 +1,86 @@
1
- let fsPromises = require("node:fs/promises"), path = require("node:path"), folderOrFileExists = require("./QyUtils.js").folderOrFileExists, readAclBuffer = require("./QyAcl.js").readAclBuffer, QySnapshots = require("./QySnapshots.js").QySnapshots, getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions;
1
+ import {
2
+ readFile as u,
3
+ readdir as x
4
+ } from "node:fs/promises";
2
5
 
3
- class QyKVDataLoader {
4
- constructor(a, e) {
5
- e = {
6
- ...getDefaultOptions("QyKVDataLoader"),
7
- ...e
6
+ import {
7
+ join as o
8
+ } from "node:path";
9
+
10
+ import {
11
+ folderOrFileExists as g
12
+ } from "./QyUtils.js";
13
+
14
+ import {
15
+ readAclBuffer as M
16
+ } from "./QyAcl.js";
17
+
18
+ import {
19
+ QySnapshots as e
20
+ } from "./QySnapshots.js";
21
+
22
+ import {
23
+ getDefaultOptions as r
24
+ } from "./QyDefaultOptions.js";
25
+
26
+ class a {
27
+ constructor(a, s) {
28
+ s = {
29
+ ...r("QyKVDataLoader"),
30
+ ...s
8
31
  };
9
- var s = path.join(a, "snapshot");
32
+ var t = o(a, "snapshot");
10
33
  Object.assign(this, {
11
34
  kvFolder: a,
12
- options: e,
13
- aclFolder: path.join(a, "acl"),
14
- snapshotFolder: s,
35
+ options: s,
36
+ aclFolder: o(a, "acl"),
37
+ snapshotFolder: t,
15
38
  loadedMaxAclNum: 0,
16
39
  aclKeyValueMap: {},
17
- qySnapshots: new QySnapshots(s, e)
40
+ qySnapshots: new e(t, s)
18
41
  });
19
42
  }
20
43
  async load() {
21
- var a = this.qySnapshots, [ e ] = await Promise.all([ this._listAclFiles(), a.loadSnapshotInfos() ]);
44
+ var a = this.qySnapshots, [ s ] = await Promise.all([ (async a => {
45
+ if (a = a.aclFolder, await g(a)) return (await x(a)).filter(a => /^[1-9]/.test(a)).map(a => parseInt(a));
46
+ })(this), a.loadSnapshotInfos() ]);
22
47
  let {
23
- maxSnapshotNum: s,
24
- snapshotMaxChangeId: t
48
+ maxSnapshotNum: t,
49
+ snapshotMaxChangeId: o
25
50
  } = a;
26
- this.maxChangeId = t, e && await this._loadAclFiles(e.filter(a => a > s));
51
+ if (this.maxChangeId = o, s) {
52
+ var e = this, r = s.filter(a => a > t), {
53
+ aclKeyValueMap: l,
54
+ qySnapshots: i,
55
+ options: s
56
+ } = (r.sort((a, s) => a - s), e), n = s.autoRepairAclFile, p = await Promise.all(r.map(async a => u(F(e, a))));
57
+ for (let a = 0; a < r.length; ++a) {
58
+ var d = r[a], m = F(e, d), m = await M(m, p[a], n, e.maxChangeId);
59
+ if (0 < m.length) {
60
+ for (var [ h, c ] of m) i.applyCmdObj(c, l), e.maxChangeId = h;
61
+ e.loadedMaxAclNum = d;
62
+ }
63
+ }
64
+ await 0;
65
+ }
27
66
  var {
28
- maxChangeId: e,
29
- loadedMaxAclNum: l,
30
- aclKeyValueMap: i
67
+ maxChangeId: s,
68
+ loadedMaxAclNum: f,
69
+ aclKeyValueMap: y
31
70
  } = this;
32
71
  return {
33
- maxChangeId: e,
34
- loadedMaxAclNum: l,
72
+ maxChangeId: s,
73
+ loadedMaxAclNum: f,
35
74
  qySnapshots: a,
36
- aclKeyValueMap: i
75
+ aclKeyValueMap: y
37
76
  };
38
77
  }
39
- async _loadAclFiles(e) {
40
- e.sort((a, e) => a - e);
41
- var {
42
- aclKeyValueMap: s,
43
- qySnapshots: t,
44
- options: a
45
- } = this, l = a.autoRepairAclFile, i = await Promise.all(e.map(async a => fsPromises.readFile(this._getAclFilePath(a))));
46
- for (let a = 0; a < e.length; ++a) {
47
- var r = e[a], o = this._getAclFilePath(r), o = await readAclBuffer(o, i[a], l, this.maxChangeId);
48
- if (0 < o.length) {
49
- for (var [ n, h ] of o) t.applyCmdObj(h, s), this.maxChangeId = n;
50
- this.loadedMaxAclNum = r;
51
- }
52
- }
53
- }
54
- async _listAclFiles() {
55
- var a = this.aclFolder;
56
- if (await folderOrFileExists(a)) return (await fsPromises.readdir(a)).filter(a => /^[1-9]/.test(a)).map(a => parseInt(a));
57
- }
58
- _getAclFilePath(a) {
59
- return path.join(this.aclFolder, a + "_acl.txt");
60
- }
61
78
  }
62
79
 
63
- Object.assign(module.exports, {
64
- QyKVDataLoader: QyKVDataLoader
65
- });
80
+ function F(a, s) {
81
+ return o(a.aclFolder, s + "_acl.txt");
82
+ }
83
+
84
+ export {
85
+ a as QyKVDataLoader
86
+ };
@@ -1,17 +1,23 @@
1
- let QyMessager = require("./QyMessager.js").QyMessager, getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions;
1
+ import {
2
+ QyMessager as a
3
+ } from "./QyMessager.js";
2
4
 
3
- class QyKVDataSaver extends QyMessager {
4
- constructor(e, a, s) {
5
- super(e, "QyKVDataSaver_Worker.js", {
6
- kvFolder: a,
5
+ import {
6
+ getDefaultOptions as r
7
+ } from "./QyDefaultOptions.js";
8
+
9
+ class e extends a {
10
+ constructor(a, e, s) {
11
+ super(a, "QyKVDataSaver_Worker.js", {
12
+ kvFolder: e,
7
13
  options: s = {
8
- ...getDefaultOptions("QyKVDataSaver"),
14
+ ...r("QyKVDataSaver"),
9
15
  ...s
10
16
  }
11
17
  }, s, [ "callSave" ], [ "castSave", "releaseSnapshot" ]);
12
18
  }
13
19
  }
14
20
 
15
- Object.assign(module.exports, {
16
- QyKVDataSaver: QyKVDataSaver
17
- });
21
+ export {
22
+ e as QyKVDataSaver
23
+ };
@@ -1,81 +1,104 @@
1
- let path = require("node:path"), getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions, QyAclSaver = require("./QyAclSaver.js").QyAclSaver, QyMessageWorker = require("./QyMessageWorker.js").QyMessageWorker, QySnapshotSaver = require("./QySnapshotSaver.js").QySnapshotSaver, delCmdKey = require("./QyAcl.js").delCmdKey;
1
+ import {
2
+ join as t
3
+ } from "node:path";
2
4
 
3
- class QyKVDataSaver_Worker extends QyMessageWorker {
5
+ import {
6
+ getDefaultOptions as e
7
+ } from "./QyDefaultOptions.js";
8
+
9
+ import {
10
+ QyAclSaver as n
11
+ } from "./QyAclSaver.js";
12
+
13
+ import {
14
+ QyMessageWorker as a
15
+ } from "./QyMessageWorker.js";
16
+
17
+ import {
18
+ QySnapshotSaver as o
19
+ } from "./QySnapshotSaver.js";
20
+
21
+ import {
22
+ delCmdKey as m
23
+ } from "./QyAcl.js";
24
+
25
+ class s extends a {
4
26
  constructor({
5
- kvFolder: e,
6
- options: a
27
+ kvFolder: a,
28
+ options: s
7
29
  }) {
8
- super(a = {
9
- ...getDefaultOptions("QyKVDataSaver_Worker"),
10
- ...a
30
+ super(s = {
31
+ ...e("QyKVDataSaver_Worker"),
32
+ ...s
11
33
  }), Object.assign(this, {
12
- kvFolder: e,
13
- aclFolder: path.join(e, "acl"),
14
- qyAclSaver: new QyAclSaver(this, a),
15
- qySnapshotSaver: new QySnapshotSaver(this, e, a)
34
+ kvFolder: a,
35
+ aclFolder: t(a, "acl"),
36
+ qyAclSaver: new n(this, s),
37
+ qySnapshotSaver: new o(this, a, s)
16
38
  });
17
39
  }
18
- start(e, a, s, t) {
40
+ start(a, s, t, e) {
19
41
  var {
20
- qyAclSaver: r,
21
- qySnapshotSaver: n
42
+ qyAclSaver: n,
43
+ qySnapshotSaver: o
22
44
  } = this;
23
45
  Object.assign(this, {
24
- maxChangeId: e,
25
- snapshotMaxChangeId: e,
26
- currentAclNum: (s || a) + 1
27
- }), r.start(this._getAclFilePath()), n.start(e, s, t);
46
+ maxChangeId: a,
47
+ snapshotMaxChangeId: a,
48
+ currentAclNum: (t || s) + 1
49
+ }), n.start(u(this)), o.start(a, t, e);
28
50
  }
29
51
  async stop() {
30
52
  var {
31
- qyAclSaver: e,
32
- options: a,
33
- qySnapshotSaver: s,
34
- currentAclNum: t,
35
- maxChangeId: r,
36
- snapshotMaxChangeId: n
53
+ qyAclSaver: a,
54
+ options: s,
55
+ qySnapshotSaver: t,
56
+ currentAclNum: e,
57
+ maxChangeId: n,
58
+ snapshotMaxChangeId: o
37
59
  } = this;
38
- this.isStopping = !0, await e.stop(), a.saveSnapshotAtStop && n < r && (this.isSavingSnapshot && await new Promise(e => this.saveSnapshotResolve = e),
39
- logger.log(`Saving snapshot ${t} at stop.`), s.saveSnapshot(t)), await s.stop();
60
+ this.isStopping = !0, await a.stop(), s.saveSnapshotAtStop && o < n && (this.isSavingSnapshot && await new Promise(a => this.saveSnapshotResolve = a),
61
+ logger.log(`Saving snapshot ${e} at stop.`), t.saveSnapshot(e)), await t.stop();
40
62
  }
41
- callSave(e, a, s) {
42
- return this._save(e, a, s, !0);
63
+ callSave(a, s, t) {
64
+ return r(this, a, s, t, !0);
43
65
  }
44
- castSave(e, a, s) {
45
- return this._save(e, a, s);
66
+ castSave(a, s, t) {
67
+ return r(this, a, s, t);
46
68
  }
47
- releaseSnapshot(e) {
48
- this.qySnapshotSaver.releaseSnapshot(e);
69
+ releaseSnapshot(a) {
70
+ this.qySnapshotSaver.releaseSnapshot(a);
49
71
  }
50
- _save(e, a, s, t) {
51
- var {
52
- qyAclSaver: r,
53
- qySnapshotSaver: n,
54
- options: o,
55
- snapshotMaxChangeId: h,
56
- currentAclNum: i,
57
- isSavingSnapshot: S
58
- } = this;
59
- let l;
60
- return t ? l = r.callSave(e, a) : r.castSave(e, a), this._removeSyncedKeys(a, s),
61
- n.castSave(e, a, s), this.maxChangeId = e, !S && e - h >= o.snapshotMaxChangeCount && (++this.currentAclNum,
62
- r.switch(this._getAclFilePath()), n.saveSnapshot(i), Object.assign(this, {
63
- snapshotMaxChangeId: e,
64
- isSavingSnapshot: !0
65
- })), l;
72
+ onSnapshotSavedChangeId(a, s) {
73
+ this.isSavingSnapshot = !1, this.saveSnapshotResolve ? this.saveSnapshotResolve() : this.isStopping || this.castParent("onSnapshotSavedChangeId", a, s);
66
74
  }
67
- _removeSyncedKeys(a, s) {
68
- if (s) {
69
- var t = s.length;
70
- for (let e = 0; e < t; e += 2) delCmdKey(a, s[e]);
71
- }
72
- }
73
- _getAclFilePath() {
74
- return path.join(this.aclFolder, this.currentAclNum + "_acl.txt");
75
- }
76
- onSnapshotSavedChangeId(e, a) {
77
- this.isSavingSnapshot = !1, this.saveSnapshotResolve ? this.saveSnapshotResolve() : this.isStopping || this.castParent("onSnapshotSavedChangeId", e, a);
75
+ }
76
+
77
+ function r(a, s, t, e, n) {
78
+ var {
79
+ qyAclSaver: o,
80
+ qySnapshotSaver: r,
81
+ options: h,
82
+ snapshotMaxChangeId: i,
83
+ currentAclNum: p,
84
+ isSavingSnapshot: S
85
+ } = a;
86
+ let v;
87
+ n ? v = o.callSave(s, t) : o.castSave(s, t);
88
+ var l = t, c = e;
89
+ if (c) {
90
+ var g = c.length;
91
+ for (let a = 0; a < g; a += 2) m(l, c[a]);
78
92
  }
93
+ return r.castSave(s, t, e), a.maxChangeId = s, !S && s - i >= h.snapshotMaxChangeCount && (++a.currentAclNum,
94
+ o.switch(u(a)), r.saveSnapshot(p), Object.assign(a, {
95
+ snapshotMaxChangeId: s,
96
+ isSavingSnapshot: !0
97
+ })), v;
98
+ }
99
+
100
+ function u(a) {
101
+ return t(a.aclFolder, a.currentAclNum + "_acl.txt");
79
102
  }
80
103
 
81
- module.exports = QyKVDataSaver_Worker;
104
+ export default s;
@@ -1,14 +1,20 @@
1
- let QyMessager = require("./QyMessager.js").QyMessager, getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions;
1
+ import {
2
+ QyMessager as e
3
+ } from "./QyMessager.js";
2
4
 
3
- class QyLogFileSaver extends QyMessager {
5
+ import {
6
+ getDefaultOptions as r
7
+ } from "./QyDefaultOptions.js";
8
+
9
+ class s extends e {
4
10
  constructor(e, s) {
5
11
  super(e, "QyLogFileSaver_Worker.js", s = {
6
- ...getDefaultOptions("QyLogFileSaver"),
12
+ ...r("QyLogFileSaver"),
7
13
  ...s
8
14
  }, s, [ "switch" ], [ "save" ]);
9
15
  }
10
16
  }
11
17
 
12
- Object.assign(module.exports, {
13
- QyLogFileSaver: QyLogFileSaver
14
- });
18
+ export {
19
+ s as QyLogFileSaver
20
+ };
@@ -1,26 +1,36 @@
1
- let getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions, QyMessageWorker = require("./QyMessageWorker.js").QyMessageWorker, QyBinWriter = require("./QyBinWriter.js").QyBinWriter;
1
+ import {
2
+ getDefaultOptions as s
3
+ } from "./QyDefaultOptions.js";
2
4
 
3
- class QyLogFileSaver_Worker extends QyMessageWorker {
4
- constructor(e) {
5
- super(e = {
6
- ...getDefaultOptions("QyLogFileSaver_Worker"),
7
- ...e
5
+ import {
6
+ QyMessageWorker as t
7
+ } from "./QyMessageWorker.js";
8
+
9
+ import {
10
+ QyBinWriter as r
11
+ } from "./QyBinWriter.js";
12
+
13
+ class i extends t {
14
+ constructor(t) {
15
+ super(t = {
16
+ ...s("QyLogFileSaver_Worker"),
17
+ ...t
8
18
  }), Object.assign(this, {
9
- qyBinWriter: new QyBinWriter(e)
19
+ qyBinWriter: new r(t)
10
20
  });
11
21
  }
12
- async start(e) {
13
- await this.qyBinWriter.start(e);
22
+ async start(t) {
23
+ await this.qyBinWriter.start(t);
14
24
  }
15
25
  async stop() {
16
26
  await this.qyBinWriter.stop();
17
27
  }
18
- async switch(e) {
19
- await this.qyBinWriter.switch(e);
28
+ async switch(t) {
29
+ await this.qyBinWriter.switch(t);
20
30
  }
21
- save(e, r) {
22
- this.qyBinWriter.save(e, r);
31
+ save(t, s) {
32
+ this.qyBinWriter.save(t, s);
23
33
  }
24
34
  }
25
35
 
26
- module.exports = QyLogFileSaver_Worker;
36
+ export default i;