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,16 +1,28 @@
1
- let open = require("node:fs/promises").open, QyOpRunner = require("./QyOpRunner.js").QyOpRunner, {
2
- ensureParentDir,
3
- getSize,
4
- getSizeStr,
5
- sleep,
6
- setPromise,
7
- toBuffer
8
- } = require("./QyUtils.js"), getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions;
1
+ import {
2
+ open as s
3
+ } from "node:fs/promises";
9
4
 
10
- class QyBinWriter extends QyOpRunner {
5
+ import {
6
+ QyOpRunner as e
7
+ } from "./QyOpRunner.js";
8
+
9
+ import {
10
+ ensureParentDir as r,
11
+ getSize as n,
12
+ getSizeStr as d,
13
+ sleep as _,
14
+ setPromise as o,
15
+ toBuffer as v
16
+ } from "./QyUtils.js";
17
+
18
+ import {
19
+ getDefaultOptions as a
20
+ } from "./QyDefaultOptions.js";
21
+
22
+ class t extends e {
11
23
  constructor(e, t) {
12
24
  super({
13
- ...getDefaultOptions("QyBinWriter"),
25
+ ...a("QyBinWriter"),
14
26
  ...e
15
27
  }, [ "start", "stop" ]), this.filePath = t, this._resetParams();
16
28
  }
@@ -20,14 +32,14 @@ class QyBinWriter extends QyOpRunner {
20
32
  getTotalSavedSize() {
21
33
  return this.totalSavedSize;
22
34
  }
23
- save(e, t, i) {
35
+ save(e, t, a) {
24
36
  null == t && (t = e, e = 0);
25
- var a, r = this.lastOp;
26
- return "_op_save" === r?.opFunName ? (a = r.args, a[0] = e, a[1].push(t),
27
- i && setPromise(r), r.promise) : (a = {
37
+ var i, s = this.lastOp;
38
+ return "_op_save" === s?.opFunName ? (i = s.args, i[0] = e, i[1].push(t),
39
+ a && o(s), s.promise) : (i = {
28
40
  opFunName: "_op_save",
29
41
  args: [ e, [ t ] ]
30
- }, i ? this.pushAndRunWithPromise(a) : this.pushAndRun(a));
42
+ }, a ? this.pushAndRunWithPromise(i) : this.pushAndRun(i));
31
43
  }
32
44
  truncate() {
33
45
  var e = this.lastOp;
@@ -51,28 +63,28 @@ class QyBinWriter extends QyOpRunner {
51
63
  }
52
64
  async _saveBinData(e, t) {
53
65
  var {
54
- fileHandle: i,
55
- totalSavedSize: a,
56
- filePath: r,
57
- options: s
66
+ fileHandle: a,
67
+ totalSavedSize: i,
68
+ filePath: s,
69
+ options: r
58
70
  } = this, {
59
71
  emitSaveEvent: n,
60
72
  maxFileSize: o,
61
73
  maxRetryInterval: l,
62
74
  retryIntervalFactor: h
63
- } = s, u = toBuffer(t), p = u.length, f = `size ${getSizeStr(p)} (MaxId:${e}) to ` + r;
64
- let c;
75
+ } = r, p = v(t), u = p.length, f = `size ${d(u)} (MaxId:${e}) to ` + s;
76
+ let m;
65
77
  for (;"_op_truncate" !== this.firstOp?.opFunName; ) try {
66
- await i.appendFile(u, {
78
+ await a.appendFile(p, {
67
79
  flush: !0
68
80
  });
69
- var d = this.totalSavedSize = a + p;
70
- return n && this.emit("save", e), void (o && o < d && !this.maxFileSizeEmitted && (this.supressMaxFileSizeEvent(),
71
- this.emit("maxFileSize", d)));
81
+ var c = this.totalSavedSize = i + u;
82
+ return n && this.emit("save", e), void (o && o < c && !this.maxFileSizeEmitted && (this.supressMaxFileSizeEvent(),
83
+ this.emit("maxFileSize", c)));
72
84
  } catch (e) {
73
- logger.error(`Saving ${f} failed:`, e, "Truncated back to " + a), await i.truncate(a),
74
- c = c ? Math.min(l, c * h) : 1, logger.log(`Retry in ${c} seconds`),
75
- await sleep(c);
85
+ logger.error(`Saving ${f} failed:`, e, "Truncated back to " + i), await a.truncate(i),
86
+ m = m ? Math.min(l, m * h) : 1, logger.log(`Retry in ${m} seconds`),
87
+ await _(m);
76
88
  }
77
89
  }
78
90
  async _op_start(e) {
@@ -109,20 +121,20 @@ class QyBinWriter extends QyOpRunner {
109
121
  async _op_switch(e) {
110
122
  var {
111
123
  fileHandle: t,
112
- filePath: i
124
+ filePath: a
113
125
  } = this;
114
- t && i == e || (await this._openFile(e), logger.info(`Switched from ${i} to ` + e));
126
+ t && a == e || (await this._openFile(e), logger.info(`Switched from ${a} to ` + e));
115
127
  }
116
128
  async _openFile(t) {
117
129
  var {
118
130
  fileHandle: e,
119
- options: i
131
+ options: a
120
132
  } = this;
121
133
  this._resetParams();
122
134
  try {
123
- e && (e.close(), this.fileHandle = void 0), await ensureParentDir(t);
124
- var a = i.append;
125
- this.fileHandle = await open(t, a ? "a" : "w"), this.filePath = t, a && (this.totalSavedSize = await getSize(t));
135
+ e && (e.close(), this.fileHandle = void 0), await r(t);
136
+ var i = a.append;
137
+ this.fileHandle = await s(t, i ? "a" : "w"), this.filePath = t, i && (this.totalSavedSize = await n(t));
126
138
  } catch (e) {
127
139
  logger.error(`Open ${t} failed:`, e);
128
140
  }
@@ -135,6 +147,6 @@ class QyBinWriter extends QyOpRunner {
135
147
  }
136
148
  }
137
149
 
138
- Object.assign(module.exports, {
139
- QyBinWriter: QyBinWriter
140
- });
150
+ export {
151
+ t as QyBinWriter
152
+ };
package/src/QyCD.js CHANGED
@@ -1,27 +1,26 @@
1
- let {
2
- isString,
3
- pathSplit
4
- } = require("./QyUtils.js");
1
+ import {
2
+ isString as e,
3
+ pathSplit as s
4
+ } from "./QyUtils.js";
5
5
 
6
- class QyCD {
6
+ class r {
7
7
  constructor(r) {
8
8
  this.qyCache = r;
9
9
  }
10
10
  cd(r, i = this.currentDir) {
11
- return isString(r) && (r = pathSplit(r)), this.cdP(r, i);
11
+ return e(r) && (r = s(r)), this.cdP(r, i);
12
12
  }
13
13
  cdP(r, i = this.currentDir) {
14
14
  return this.currentDir = this.qyCache.getOrCreateDir(r, i), this;
15
15
  }
16
16
  dir(r, i = this.currentDir) {
17
- return isString(r) && (r = pathSplit(r)), this.dirP(r, i);
17
+ return e(r) && (r = s(r)), this.dirP(r, i);
18
18
  }
19
19
  dirP(r, i = this.currentDir) {
20
20
  return this.qyCache.getDir(r, i);
21
21
  }
22
22
  indexDir(r, i, t = this.currentDir) {
23
- return isString(r) && (r = pathSplit(r)), isString(i) && (i = pathSplit(i)),
24
- this.indexDirP(r, i, t);
23
+ return e(r) && (r = s(r)), e(i) && (i = s(i)), this.indexDirP(r, i, t);
25
24
  }
26
25
  indexDirP(r, i, t = this.currentDir) {
27
26
  var e = this.qyCache, r = e.getDir(r, t);
@@ -31,7 +30,7 @@ class QyCD {
31
30
  }
32
31
  }
33
32
  file(r, i = this.currentDir) {
34
- return isString(r) && (r = pathSplit(r)), this.fileP(r, i);
33
+ return e(r) && (r = s(r)), this.fileP(r, i);
35
34
  }
36
35
  fileP(r, i = this.currentDir) {
37
36
  return this.qyCache.getFile(r, i);
@@ -40,7 +39,7 @@ class QyCD {
40
39
  return this.qyCache.getTriggerFile(r);
41
40
  }
42
41
  view(r, i, t = this.currentDir) {
43
- return isString(r) && (r = pathSplit(r)), this.viewP(r, i, t);
42
+ return e(r) && (r = s(r)), this.viewP(r, i, t);
44
43
  }
45
44
  viewP(r, i, t = this.currentDir) {
46
45
  return this.qyCache.getFile(r, t)?.view(i);
@@ -56,6 +55,6 @@ class QyCD {
56
55
  }
57
56
  }
58
57
 
59
- Object.assign(module.exports, {
60
- QyCD: QyCD
61
- });
58
+ export {
59
+ r as QyCD
60
+ };
package/src/QyCache.js CHANGED
@@ -1,77 +1,151 @@
1
- let path = require("node:path"), EventEmitter = require("node:events"), QyDir = require("./QyDir.js").QyDir, QyFileLogger = require("./QyFileLogger.js").QyFileLogger, QyKVData = require("./QyKVData.js").QyKVData, {
2
- QyTriggerNode,
3
- updateTriggerNodes
4
- } = require("./QyTrigger.js"), {
5
- isString,
6
- lockExclusiveFilePath,
7
- unlockExclusiveFilePath
8
- } = require("./QyUtils.js"), dumpStructure = require("./QyStructure.js").dumpStructure, {
9
- getIndexPropPaths,
10
- parseNamePathAndQuery
11
- } = require("./QyIndex.js"), getDefaultOptions = require("./QyDefaultOptions.js").getDefaultOptions, {
12
- ensureDir,
13
- SpecialFilePaths
14
- } = require("./QyUtils.js"), QueryCounter = require("./QyUnionNode.js").QueryCounter, QyKVDataLoader = require("./QyKVDataLoader.js").QyKVDataLoader, requireFromModCode = require("./QyMod.js").requireFromModCode, {
15
- IndexDirPath,
16
- TriggerDirPath,
17
- RpcDirPath
18
- } = SpecialFilePaths;
19
-
20
- class QyCache extends EventEmitter {
21
- constructor(e, r, t) {
22
- super(), r = {
23
- ...getDefaultOptions("QyCache"),
24
- ...r
1
+ import {
2
+ join as v
3
+ } from "node:path";
4
+
5
+ import r from "node:events";
6
+
7
+ import {
8
+ QyDir as o
9
+ } from "./QyDir.js";
10
+
11
+ import {
12
+ QyFileLogger as a
13
+ } from "./QyFileLogger.js";
14
+
15
+ import {
16
+ QyKVData as s
17
+ } from "./QyKVData.js";
18
+
19
+ import {
20
+ QyTriggerNode as f,
21
+ updateTriggerNodes as g
22
+ } from "./QyTrigger.js";
23
+
24
+ import {
25
+ isString as n,
26
+ lockExclusiveFilePath as C,
27
+ unlockExclusiveFilePath as i
28
+ } from "./QyUtils.js";
29
+
30
+ import {
31
+ dumpStructure as q
32
+ } from "./QyStructure.js";
33
+
34
+ import {
35
+ getIndexPropPaths as l,
36
+ parseNamePathAndQuery as d
37
+ } from "./QyIndex.js";
38
+
39
+ import {
40
+ getDefaultOptions as u
41
+ } from "./QyDefaultOptions.js";
42
+
43
+ import {
44
+ ensureDir as R,
45
+ SpecialFilePaths as e
46
+ } from "./QyUtils.js";
47
+
48
+ import {
49
+ QueryCounter as p
50
+ } from "./QyUnionNode.js";
51
+
52
+ import {
53
+ QyKVDataLoader as Q
54
+ } from "./QyKVDataLoader.js";
55
+
56
+ import {
57
+ requireFromModCode as h
58
+ } from "./QyMod.js";
59
+
60
+ let {
61
+ IndexDirPath: S,
62
+ TriggerDirPath: x,
63
+ RpcDirPath: O
64
+ } = e;
65
+
66
+ class t extends r {
67
+ constructor(r, e, t) {
68
+ super(), e = {
69
+ ...u("QyCache"),
70
+ ...e
25
71
  };
26
- var i = path.join(e, "qykv");
72
+ var i = v(r, "qykv");
27
73
  Object.assign(this, {
28
74
  qyDB: t,
29
- rootFolder: e,
75
+ rootFolder: r,
30
76
  kvFolder: i,
31
- rpcFolder: path.join(e, "rpc"),
32
- options: r,
33
- rootDir: new QyDir("", !0, void 0, this),
34
- exclusiveFilePath: path.join(e, ".opened"),
35
- qyKVData: new QyKVData(i, r, this),
36
- qyFileLogger: new QyFileLogger(path.join(e, "qylog"), r),
77
+ rpcFolder: v(r, "rpc"),
78
+ options: e,
79
+ rootDir: new o("", !0, void 0, this),
80
+ exclusiveFilePath: v(r, ".opened"),
81
+ qyKVData: new s(i, e, this),
82
+ qyFileLogger: new a(v(r, "qylog"), e),
37
83
  rpcFunMap: {}
38
84
  });
39
85
  }
40
86
  async start() {
41
87
  var {
42
- rootFolder: e,
43
- kvFolder: r,
88
+ rootFolder: r,
89
+ kvFolder: e,
44
90
  options: t,
45
91
  qyKVData: i,
46
- qyFileLogger: a,
47
- exclusiveFilePath: o,
92
+ qyFileLogger: o,
93
+ exclusiveFilePath: a,
48
94
  rootDir: s
49
95
  } = this;
50
- logger.log(`Starting at ${e}...`);
96
+ logger.log(`Starting at ${r}...`);
51
97
  try {
52
- await ensureDir(r), a.start();
98
+ await R(e), o.start();
53
99
  var [ {
54
100
  maxChangeId: g,
55
101
  loadedMaxAclNum: n,
56
102
  qySnapshots: l,
57
- aclKeyValueMap: u
58
- } ] = await Promise.all([ this._loadQyKVData(r, t), lockExclusiveFilePath(o) ]);
59
- await i.start(g, n, l, u);
60
- } catch (e) {
61
- throw a.stop(), e;
103
+ aclKeyValueMap: d
104
+ } ] = await Promise.all([ ((r, e) => (r = new Q(r, e)).load())(e, t), C(a) ]);
105
+ await i.start(g, n, l, d);
106
+ } catch (r) {
107
+ throw o.stop(), r;
62
108
  }
63
- return t.preloadFoldersAtStart && this._preloadFolders(s), this.indexRootDir = s.searchOrCreateSubdir(IndexDirPath),
64
- this._initTriggers(), this._initRpcs(), t.dumpStructureAtStart && await dumpStructure(path.join(e, "qystruct"), s),
65
- logger.log("Started."), this;
109
+ t.preloadFoldersAtStart && !function r(e) {
110
+ let {
111
+ subdirList: t,
112
+ fileMap: i
113
+ } = e;
114
+ for (var o of t) r(o);
115
+ }(s), this.indexRootDir = s.searchOrCreateSubdir(S);
116
+ var u = this, e = u.rootDir;
117
+ e.triggerNodes = [ new f() ], u.triggerRootDir = e.searchOrCreateSubdir(x);
118
+ for (p of u.triggerRootDir.fileList) {
119
+ var {
120
+ name: p,
121
+ fileContent: h
122
+ } = p, {
123
+ fileNamePath: h,
124
+ propNamePathList: c,
125
+ modCode: D
126
+ } = h;
127
+ u.insertTriggerToTree(p, h, c, D);
128
+ }
129
+ var y = this;
130
+ y.rpcRootDir = y.rootDir.searchOrCreateSubdir(O);
131
+ for (m of y.rpcRootDir.fileList) {
132
+ var {
133
+ name: m,
134
+ fileContent: F
135
+ } = m;
136
+ F && (F = F.modCode, F) && y.insertRpc(m, F);
137
+ }
138
+ return t.dumpStructureAtStart && await q(v(r, "qystruct"), s), logger.log("Started."),
139
+ this;
66
140
  }
67
141
  async stop() {
68
142
  logger.log("Stopping...");
69
143
  var {
70
- qyKVData: e,
71
- qyFileLogger: r,
144
+ qyKVData: r,
145
+ qyFileLogger: e,
72
146
  exclusiveFilePath: t
73
147
  } = this;
74
- return await e.stop(), await r.stop(), unlockExclusiveFilePath(t), Object.assign(this, {
148
+ return await r.stop(), await e.stop(), i(t), Object.assign(this, {
75
149
  rootDir: void 0,
76
150
  indexRootDir: void 0,
77
151
  qyKVData: void 0,
@@ -88,125 +162,88 @@ class QyCache extends EventEmitter {
88
162
  decreaseChangeId() {
89
163
  this.qyKVData.decreaseChangeId();
90
164
  }
91
- save(e, r, t, i, a) {
165
+ save(r, e, t, i, o) {
92
166
  var {
93
- qyKVData: o,
167
+ qyKVData: a,
94
168
  qyFileLogger: s
95
169
  } = this;
96
- return t && s.save(e, t), o.save(e, r, i, a);
170
+ return t && s.save(r, t), a.save(r, e, i, o);
97
171
  }
98
- getFile(e, r = this.rootDir) {
99
- return e.isFile ? e : isString(e) ? r.getFile(e) : r.searchFile(e);
172
+ getFile(r, e = this.rootDir) {
173
+ return r.isFile ? r : n(r) ? e.getFile(r) : e.searchFile(r);
100
174
  }
101
- getDir(e, r = this.rootDir) {
102
- return e.isDir ? e : isString(e) ? r.getSubdir(e) : r.searchSubdir(e);
175
+ getDir(r, e = this.rootDir) {
176
+ return r.isDir ? r : n(r) ? e.getSubdir(r) : e.searchSubdir(r);
103
177
  }
104
- getOrCreateFile(e, r = this.rootDir) {
105
- return e.isFile ? e : isString(e) ? r.getOrCreateFile(e) : r.searchOrCreateFile(e);
178
+ getOrCreateFile(r, e = this.rootDir) {
179
+ return r.isFile ? r : n(r) ? e.getOrCreateFile(r) : e.searchOrCreateFile(r);
106
180
  }
107
- getOrCreateDir(e, r = this.rootDir) {
108
- return e.isDir ? e : isString(e) ? r.getOrCreateSubdir(e) : r.searchOrCreateSubdir(e);
181
+ getOrCreateDir(r, e = this.rootDir) {
182
+ return r.isDir ? r : n(r) ? e.getOrCreateSubdir(r) : e.searchOrCreateSubdir(r);
109
183
  }
110
- getIndexDir(e) {
111
- return this.indexRootDir.getSubdir(e.fullPathHash);
184
+ getIndexDir(r) {
185
+ return this.indexRootDir.getSubdir(r.fullPathHash);
112
186
  }
113
- getOrCreateIndexDir(e) {
114
- return this.indexRootDir.getOrCreateSubdir(e.fullPathHash);
187
+ getOrCreateIndexDir(r) {
188
+ return this.indexRootDir.getOrCreateSubdir(r.fullPathHash);
115
189
  }
116
- getTriggerFile(e) {
117
- return this.triggerRootDir.getFile(e);
190
+ getTriggerFile(r) {
191
+ return this.triggerRootDir.getFile(r);
118
192
  }
119
- getOrCreateTriggerFile(e) {
120
- return this.triggerRootDir.getOrCreateFile(e);
193
+ getOrCreateTriggerFile(r) {
194
+ return this.triggerRootDir.getOrCreateFile(r);
121
195
  }
122
- getRpcFile(e) {
123
- return this.rpcRootDir.getFile(e);
196
+ getRpcFile(r) {
197
+ return this.rpcRootDir.getFile(r);
124
198
  }
125
- getOrCreateRpcFile(e) {
126
- return this.rpcRootDir.getOrCreateFile(e);
199
+ getOrCreateRpcFile(r) {
200
+ return this.rpcRootDir.getOrCreateFile(r);
127
201
  }
128
- insertTriggerToTree(e, r, t, i) {
202
+ insertTriggerToTree(r, e, t, i) {
129
203
  var {
130
- rootDir: a,
131
- qyDB: o
132
- } = this, i = requireFromModCode("trigger", e, i, o);
133
- a.triggerNodes[0].insertTrigger(e, r, t, i), updateTriggerNodes(a, r);
204
+ rootDir: o,
205
+ qyDB: a
206
+ } = this, i = h("trigger", r, i, a);
207
+ o.triggerNodes[0].insertTrigger(r, e, t, i), g(o, e);
134
208
  }
135
- removeTriggerFromTree(e, r) {
209
+ removeTriggerFromTree(r, e) {
136
210
  var t = this.rootDir;
137
- t.triggerNodes[0].removeTrigger(e, r) && updateTriggerNodes(t, r);
211
+ t.triggerNodes[0].removeTrigger(r, e) && g(t, e);
138
212
  }
139
- insertRpc(e, r) {
213
+ insertRpc(r, e) {
140
214
  var {
141
215
  rpcFunMap: t,
142
216
  qyDB: i
143
- } = this, r = requireFromModCode("rpc", e, r, i);
144
- r && (t[e] = r);
217
+ } = this, e = h("rpc", r, e, i);
218
+ e && (t[r] = e);
145
219
  }
146
- removeRpc(e) {
147
- delete this.rpcFunMap[e];
220
+ removeRpc(r) {
221
+ delete this.rpcFunMap[r];
148
222
  }
149
- queryFiles(e, r, t, i, a = this.rootDir) {
150
- var o = [], t = (isString(r) && null == t && (t = 1), new QueryCounter(t, i));
151
- return this._queryFiles(e, r, o, t, a), o;
223
+ queryFiles(r, e, t, i, o = this.rootDir) {
224
+ var a = [], t = (n(e) && null == t && (t = 1), new p(t, i)), i = this.options.queryAutoCreateIndex;
225
+ return c(r, e, a, t, o, i), a;
152
226
  }
153
- queryFilesMulti(e, r, t, i = this.rootDir) {
154
- var a, o, s = [], g = new QueryCounter(r, t);
155
- for ([ a, o ] of e) this._queryFiles(a, o, s, g, i);
227
+ queryFilesMulti(r, e, t, i = this.rootDir) {
228
+ var o, a, s = [], g = new p(e, t), n = this.options.queryAutoCreateIndex;
229
+ for ([ o, a ] of r) c(o, a, s, g, i, n);
156
230
  return s;
157
231
  }
158
- _queryFiles(e, r, t, i, a) {
159
- var o;
160
- r && (o = this.options.queryAutoCreateIndex, o = o ? getIndexPropPaths(r) : void 0,
161
- parseNamePathAndQuery(e, a, o, r, t, i));
162
- }
163
- async callRpc(r, e, t) {
164
- var i, a = this.rpcFunMap[r];
165
- if (!a) return i = `RPC ${r} not implemented.`, logger.warn(i), new Error(i);
232
+ async callRpc(e, r, t) {
233
+ var i, o = this.rpcFunMap[e];
234
+ if (!o) return i = `RPC ${e} not implemented.`, logger.warn(i), new Error(i);
166
235
  try {
167
- return await a(e, t);
168
- } catch (e) {
169
- return logger.error(`Calling RPC ${r} failed:`, e), e;
170
- }
171
- }
172
- _preloadFolders(e) {
173
- var r, t = e.subdirMap;
174
- for (r in t) {
175
- var i = t[r];
176
- i.created && this._preloadFolders(i);
177
- }
178
- e._ensureFileMapLoaded();
179
- }
180
- _initTriggers() {
181
- var e, r = this.rootDir;
182
- r.triggerNodes = [ new QyTriggerNode() ], this.triggerRootDir = r.searchOrCreateSubdir(TriggerDirPath);
183
- for (e of this.triggerRootDir.fileList) {
184
- var {
185
- name: t,
186
- fileContent: i
187
- } = e, {
188
- fileNamePath: i,
189
- propNamePathList: a,
190
- modCode: o
191
- } = i;
192
- this.insertTriggerToTree(t, i, a, o);
193
- }
194
- }
195
- _initRpcs() {
196
- this.rpcRootDir = this.rootDir.searchOrCreateSubdir(RpcDirPath);
197
- for (var e of this.rpcRootDir.fileList) {
198
- var {
199
- name: e,
200
- fileContent: r
201
- } = e;
202
- r && (r = r.modCode, r) && this.insertRpc(e, r);
236
+ return await o(r, t);
237
+ } catch (r) {
238
+ return logger.error(`Calling RPC ${e} failed:`, r), r;
203
239
  }
204
240
  }
205
- _loadQyKVData(e, r) {
206
- return new QyKVDataLoader(e, r).load();
207
- }
208
241
  }
209
242
 
210
- Object.assign(module.exports, {
211
- QyCache: QyCache
212
- });
243
+ function c(r, e, t, i, o, a) {
244
+ e && (a = a ? l(e) : void 0, d(r, o, a, e, t, i));
245
+ }
246
+
247
+ export {
248
+ t as QyCache
249
+ };