datafolder 1.0.10 → 1.0.12
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/{internal.md → Internal.md} +8 -1
- package/README.md +15 -1
- package/SKILL.md +191 -0
- package/SSD.md +3 -3
- package/package.json +2 -2
- package/scripts/flights2.js +2 -0
- package/src/QyAcl.d.ts +13 -7
- package/src/QyAcl.js +122 -138
- package/src/QyAclSaver.js +2 -2
- package/src/QyAclSaver_Worker.d.ts +2 -2
- package/src/QyAclWriter.d.ts +1 -1
- package/src/QyBatch.d.ts +8 -11
- package/src/QyBatch.js +239 -211
- package/src/QyBinWriter.d.ts +2 -2
- package/src/QyBinWriter.js +15 -15
- package/src/QyCD.d.ts +2 -2
- package/src/QyCD.js +29 -29
- package/src/QyCache.d.ts +6 -1
- package/src/QyCache.js +72 -53
- package/src/QyCompressor.d.ts +2 -2
- package/src/QyCompressor.js +13 -13
- package/src/QyDB.d.ts +1 -22
- package/src/QyDB.js +23 -78
- package/src/QyDefaultOptions.js +5 -0
- package/src/QyDir.js +26 -27
- package/src/QyExpire.d.ts +21 -0
- package/src/QyExpire.js +113 -0
- package/src/QyExpireClock.d.ts +15 -0
- package/src/QyExpireClock.js +53 -0
- package/src/QyExpire_Worker.d.ts +20 -0
- package/src/QyExpire_Worker.js +127 -0
- package/src/QyFile.js +36 -25
- package/src/QyFileContentUtils.js +21 -21
- package/src/QyItem.d.ts +1 -0
- package/src/QyItem.js +15 -9
- package/src/QyJsonSaver.d.ts +1 -1
- package/src/QyJsonSaver.js +1 -1
- package/src/QyKVData.d.ts +5 -2
- package/src/QyKVData.js +126 -114
- package/src/QyKVDataCleaner.js +2 -2
- package/src/QyKVDataCleaner_Worker.js +37 -37
- package/src/QyKVDataSaver.js +2 -2
- package/src/QyKVDataSaver_Worker.d.ts +2 -2
- package/src/QyKVDataSaver_Worker.js +5 -5
- package/src/QyLogFileSaver.js +2 -2
- package/src/QyLogger.d.ts +1 -0
- package/src/QyLogger.js +1 -0
- package/src/QyMessageWorker.d.ts +1 -1
- package/src/QyMessageWorker.js +10 -10
- package/src/QyMessager.d.ts +1 -1
- package/src/QyMessager.js +37 -36
- package/src/QyMessager_Run.js +12 -8
- package/src/QyQueue.js +8 -12
- package/src/QySaver.d.ts +1 -1
- package/src/QySaver.js +1 -1
- package/src/QySnapshotCompactor.js +2 -2
- package/src/QySnapshotCompactor_Worker.d.ts +1 -1
- package/src/QySnapshotCompactor_Worker.js +5 -5
- package/src/QySnapshotSaver.js +2 -2
- package/src/QySnapshotSaver_Worker.js +4 -4
- package/src/QySnapshots.d.ts +2 -2
- package/src/QySnapshots.js +38 -38
- package/src/QyTrigger.d.ts +1 -1
- package/src/QyTrigger.js +20 -21
- package/src/QyUtils.d.ts +3 -2
- package/src/QyUtils.js +93 -86
- package/src/hackernews.js +1 -1
- package/src/simulate.js +6 -6
- package/src/simulate2.js +5 -5
- package/src/soc_pokec.js +1 -1
- package/static/codemirror.bundle/editor.bundle.js +43 -9
- package/static/datafolderui/QyUIFolderViewer.js +1 -5
package/src/QyTrigger.js
CHANGED
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
isEmptyObj as e,
|
|
12
12
|
isMatchName as l,
|
|
13
13
|
getMatchParam as d,
|
|
14
|
-
arrayLast as f,
|
|
15
14
|
propNameJoin as v
|
|
16
15
|
} from "./QyUtils.js";
|
|
17
16
|
|
|
@@ -21,7 +20,7 @@ import {
|
|
|
21
20
|
|
|
22
21
|
let y = Array.isArray;
|
|
23
22
|
|
|
24
|
-
class
|
|
23
|
+
class f {
|
|
25
24
|
name;
|
|
26
25
|
parent;
|
|
27
26
|
children = {};
|
|
@@ -32,12 +31,12 @@ class h {
|
|
|
32
31
|
parent: r
|
|
33
32
|
});
|
|
34
33
|
}
|
|
35
|
-
insertTrigger(e, r, t, a) {
|
|
34
|
+
insertTrigger(e, r, t, a = void 0) {
|
|
36
35
|
let i = this;
|
|
37
|
-
for (var
|
|
38
|
-
l(
|
|
39
|
-
var
|
|
40
|
-
i = o
|
|
36
|
+
for (var o of r) {
|
|
37
|
+
l(o) && (o = "*");
|
|
38
|
+
var s = i.children;
|
|
39
|
+
i = s[o] || (s[o] = new f(o, i));
|
|
41
40
|
}
|
|
42
41
|
var n = i.triggerMap, g = n[e];
|
|
43
42
|
g ? Object.assign(g, {
|
|
@@ -45,7 +44,7 @@ class h {
|
|
|
45
44
|
fileNamePath: r,
|
|
46
45
|
propNamePathList: t,
|
|
47
46
|
fun: a
|
|
48
|
-
}) : n[e] = new
|
|
47
|
+
}) : n[e] = new h(e, r, t, a);
|
|
49
48
|
}
|
|
50
49
|
removeTrigger(e, r) {
|
|
51
50
|
let t = this;
|
|
@@ -74,7 +73,7 @@ class h {
|
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
class
|
|
76
|
+
class h {
|
|
78
77
|
triggerName;
|
|
79
78
|
fileNamePath;
|
|
80
79
|
propNamePathList;
|
|
@@ -91,11 +90,11 @@ class m {
|
|
|
91
90
|
var t, {
|
|
92
91
|
triggerName: a,
|
|
93
92
|
fileNamePath: i,
|
|
94
|
-
propNamePathList:
|
|
95
|
-
fun:
|
|
93
|
+
propNamePathList: o,
|
|
94
|
+
fun: s
|
|
96
95
|
} = this, n = e.fileContent;
|
|
97
96
|
let g;
|
|
98
|
-
for (t of
|
|
97
|
+
for (t of o) {
|
|
99
98
|
var l = c(r.oldValue, t), f = c(r.newValue, t);
|
|
100
99
|
p(l, f) || (l = {
|
|
101
100
|
oldValue: l,
|
|
@@ -108,14 +107,14 @@ class m {
|
|
|
108
107
|
if (g) {
|
|
109
108
|
var {
|
|
110
109
|
namePath: h,
|
|
111
|
-
qyCache:
|
|
110
|
+
qyCache: o
|
|
112
111
|
} = e;
|
|
113
112
|
for (let e = 0; e < h.length; ++e) {
|
|
114
113
|
var m = d(i[e]);
|
|
115
114
|
m && (g[m] = h[e]);
|
|
116
115
|
}
|
|
117
116
|
try {
|
|
118
|
-
|
|
117
|
+
s && s(g), o.emit(a, g);
|
|
119
118
|
} catch (e) {
|
|
120
119
|
N.error(`Running trigger ${a} failed:`, g, e);
|
|
121
120
|
}
|
|
@@ -125,7 +124,7 @@ class m {
|
|
|
125
124
|
|
|
126
125
|
let t = [];
|
|
127
126
|
|
|
128
|
-
function
|
|
127
|
+
function m(e, r) {
|
|
129
128
|
return e ? l(r) ? Object.values(e) : (e = e[r]) ? [ e ] : t : t;
|
|
130
129
|
}
|
|
131
130
|
|
|
@@ -133,18 +132,18 @@ function r(e, a) {
|
|
|
133
132
|
if (0 != a.length) {
|
|
134
133
|
let r = [ e ], t = [];
|
|
135
134
|
for (let e = 0; e < a.length - 1; ++e) {
|
|
136
|
-
var i,
|
|
137
|
-
for (i of r) for (var
|
|
138
|
-
t.push(
|
|
135
|
+
var i, o = a[e];
|
|
136
|
+
for (i of r) for (var s of m(i.subdirMap, o)) i.setChildTriggerNodes(s),
|
|
137
|
+
t.push(s);
|
|
139
138
|
if (0 == t.length) return;
|
|
140
139
|
[ r, t ] = [ t, r ], t.length = 0;
|
|
141
140
|
}
|
|
142
|
-
var n, g =
|
|
143
|
-
for (n of r) for (var l of
|
|
141
|
+
var n, g = a.at(-1);
|
|
142
|
+
for (n of r) for (var l of m(n.fileMap, g)) n.setChildTriggerNodes(l);
|
|
144
143
|
}
|
|
145
144
|
}
|
|
146
145
|
|
|
147
146
|
export {
|
|
148
|
-
|
|
147
|
+
f as QyTriggerNode,
|
|
149
148
|
r as updateTriggerNodes
|
|
150
149
|
};
|
package/src/QyUtils.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare const SpecialFilePaths: {
|
|
|
7
7
|
TriggerDirPath: string[];
|
|
8
8
|
RpcDirPath: string[];
|
|
9
9
|
IndexDirPath: string[];
|
|
10
|
+
ExpireDirPath: string[];
|
|
10
11
|
IndexPropPathsFileName: string;
|
|
11
12
|
};
|
|
12
13
|
export declare function isMatchName(name: any): any;
|
|
@@ -18,7 +19,6 @@ export declare function getSubdirMapKey(fullPathHash: any): string;
|
|
|
18
19
|
export declare function getFileMapKey(fullPathHash: any): string;
|
|
19
20
|
export declare function getContentKey(fullPathHash: any): string;
|
|
20
21
|
export declare function getRandomStr(byteCount?: number): string;
|
|
21
|
-
export declare function arrayLast(array: any): any;
|
|
22
22
|
export declare function isEmptyObj(obj: any): boolean;
|
|
23
23
|
export declare function isNotNullObj(item: any): boolean;
|
|
24
24
|
export declare function isString(item: any): item is string;
|
|
@@ -40,7 +40,7 @@ export declare function unlockExclusiveFilePath(exclusiveFilePath: any): void;
|
|
|
40
40
|
export declare function fromSingleName(name: any): any;
|
|
41
41
|
export declare function toSingleName(list: any): any;
|
|
42
42
|
export declare function pathSplit(itemPath: any): any;
|
|
43
|
-
export declare function
|
|
43
|
+
export declare function ensurePropNamePathList(propNamePathList: any): any[] | undefined;
|
|
44
44
|
export declare function propNameJoin(propName: any): any;
|
|
45
45
|
export declare function randomInt(max: any, min?: number): number;
|
|
46
46
|
export declare function listToMap(list: any): {};
|
|
@@ -50,4 +50,5 @@ export declare function loadFileList(fileList: any, preloadCount?: number): Asyn
|
|
|
50
50
|
filePath: any;
|
|
51
51
|
bin: any;
|
|
52
52
|
}, void, unknown>;
|
|
53
|
+
export declare function getNowSeconds(now?: Date): number;
|
|
53
54
|
export * as default from "./QyUtils.ts";
|
package/src/QyUtils.js
CHANGED
|
@@ -18,52 +18,51 @@ import {
|
|
|
18
18
|
logger as u
|
|
19
19
|
} from "../src/QyLogger.js";
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
let a = Array.isArray;
|
|
22
|
+
|
|
23
|
+
var f = t.dirname(r(import.meta.url)), c = Object.fromEntries([ "$del", "$link", "$rpl", "$spec", "$raw", "$all", "$clone", "$ext", "$or", "$and", "$gt", "$lt", "$gte", "$lte" ].map(r => [ r, r ])), s = "%", s = {
|
|
24
|
+
HiddenFolderName: s,
|
|
25
|
+
TriggerDirPath: [ s, "trigger" ],
|
|
26
|
+
RpcDirPath: [ s, "rpc" ],
|
|
27
|
+
IndexDirPath: [ s, "index" ],
|
|
28
|
+
ExpireDirPath: [ s, "expire" ],
|
|
26
29
|
IndexPropPathsFileName: "propPaths"
|
|
27
30
|
};
|
|
28
31
|
|
|
29
|
-
function
|
|
32
|
+
function d(r) {
|
|
30
33
|
return r.startsWith("{") && r.endsWith("}");
|
|
31
34
|
}
|
|
32
35
|
|
|
33
|
-
function
|
|
34
|
-
return
|
|
36
|
+
function m(r) {
|
|
37
|
+
return d(r) && r.substring(1, r.length - 1);
|
|
35
38
|
}
|
|
36
39
|
|
|
37
|
-
function
|
|
40
|
+
function p(r) {
|
|
38
41
|
return 1e12 < r ? Math.round(100 * r / 1e12) / 100 + "TB" : 1e9 < r ? Math.round(100 * r / 1e9) / 100 + "GB" : 1e6 < r ? Math.round(100 * r / 1e6) / 100 + "MB" : 1e3 < r ? Math.round(100 * r / 1e3) / 100 + "KB" : r.toString();
|
|
39
42
|
}
|
|
40
43
|
|
|
41
|
-
function
|
|
44
|
+
function h(r, t = 10) {
|
|
42
45
|
return n.createHash("sha256").update(r, "utf8").digest("base64url").slice(0, t);
|
|
43
46
|
}
|
|
44
47
|
|
|
45
|
-
var
|
|
48
|
+
var g = 11;
|
|
46
49
|
|
|
47
|
-
function
|
|
50
|
+
function y(r) {
|
|
48
51
|
return "d" + r;
|
|
49
52
|
}
|
|
50
53
|
|
|
51
|
-
function
|
|
54
|
+
function v(r) {
|
|
52
55
|
return "f" + r;
|
|
53
56
|
}
|
|
54
57
|
|
|
55
|
-
function
|
|
58
|
+
function b(r) {
|
|
56
59
|
return "c" + r;
|
|
57
60
|
}
|
|
58
61
|
|
|
59
|
-
function
|
|
62
|
+
function $(r = 8) {
|
|
60
63
|
return n.randomBytes(r).toString("hex");
|
|
61
64
|
}
|
|
62
65
|
|
|
63
|
-
function $(r) {
|
|
64
|
-
return r[r.length - 1];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
66
|
function w(r) {
|
|
68
67
|
if (null != r) for (var t in r) if (null != r[t]) return !1;
|
|
69
68
|
return !0;
|
|
@@ -73,28 +72,28 @@ function P(r) {
|
|
|
73
72
|
return null != r && "object" == typeof r && !(r instanceof Date);
|
|
74
73
|
}
|
|
75
74
|
|
|
76
|
-
function
|
|
75
|
+
function x(r) {
|
|
77
76
|
return "string" == typeof r;
|
|
78
77
|
}
|
|
79
78
|
|
|
80
|
-
function
|
|
79
|
+
function S(r) {
|
|
81
80
|
return "number" == typeof r;
|
|
82
81
|
}
|
|
83
82
|
|
|
84
|
-
function
|
|
83
|
+
function j(r) {
|
|
85
84
|
return "boolean" == typeof r;
|
|
86
85
|
}
|
|
87
86
|
|
|
88
|
-
function
|
|
87
|
+
function M(r) {
|
|
89
88
|
return "function" == typeof r;
|
|
90
89
|
}
|
|
91
90
|
|
|
92
|
-
function
|
|
91
|
+
function B(r) {
|
|
93
92
|
var t = typeof r;
|
|
94
93
|
return "string" == t || "number" == t || "boolean" == t || r instanceof Date;
|
|
95
94
|
}
|
|
96
95
|
|
|
97
|
-
function
|
|
96
|
+
function D(r) {
|
|
98
97
|
let t = r.length;
|
|
99
98
|
for (;null == r[t - 1] && 0 < t; ) --t;
|
|
100
99
|
return r.length = t, r;
|
|
@@ -107,25 +106,25 @@ function T(n) {
|
|
|
107
106
|
}))), n;
|
|
108
107
|
}
|
|
109
108
|
|
|
110
|
-
function
|
|
109
|
+
function A(r) {
|
|
111
110
|
return Buffer.isBuffer(r) ? r : Buffer.from(r);
|
|
112
111
|
}
|
|
113
112
|
|
|
114
|
-
function
|
|
113
|
+
function E(r) {
|
|
115
114
|
return 1 < r ? "s" : "";
|
|
116
115
|
}
|
|
117
116
|
|
|
118
|
-
function
|
|
117
|
+
function O(r) {
|
|
119
118
|
return l.mkdir(r, {
|
|
120
119
|
recursive: !0
|
|
121
120
|
});
|
|
122
121
|
}
|
|
123
122
|
|
|
124
|
-
function
|
|
125
|
-
return
|
|
123
|
+
function k(r) {
|
|
124
|
+
return O(t.dirname(r));
|
|
126
125
|
}
|
|
127
126
|
|
|
128
|
-
async function
|
|
127
|
+
async function F(r) {
|
|
129
128
|
try {
|
|
130
129
|
return (await l.stat(r)).size;
|
|
131
130
|
} catch (r) {
|
|
@@ -134,29 +133,29 @@ async function I(r) {
|
|
|
134
133
|
}
|
|
135
134
|
|
|
136
135
|
async function W(r) {
|
|
137
|
-
return !1 !== await
|
|
136
|
+
return !1 !== await F(r);
|
|
138
137
|
}
|
|
139
138
|
|
|
140
|
-
function
|
|
139
|
+
function L(r, t = void 0) {
|
|
141
140
|
r *= 1e3;
|
|
142
141
|
return t ? i.setTimeout(r, !0, {
|
|
143
142
|
signal: t
|
|
144
143
|
}) : i.setTimeout(r);
|
|
145
144
|
}
|
|
146
145
|
|
|
147
|
-
let
|
|
146
|
+
let I;
|
|
148
147
|
|
|
149
|
-
async function
|
|
148
|
+
async function R(t) {
|
|
150
149
|
try {
|
|
151
|
-
await
|
|
150
|
+
await k(t);
|
|
152
151
|
var r = new Date().toISOString() + ": " + e.argv.join(" ");
|
|
153
152
|
function n() {
|
|
154
|
-
for (var r of Object.keys(
|
|
153
|
+
for (var r of Object.keys(I)) N(r);
|
|
155
154
|
}
|
|
156
155
|
await l.writeFile(t, r, {
|
|
157
156
|
flag: "wx",
|
|
158
157
|
flush: !0
|
|
159
|
-
}), u.info("Locked " + t),
|
|
158
|
+
}), u.info("Locked " + t), I ? I[t] = 1 : (I = {
|
|
160
159
|
[t]: 1
|
|
161
160
|
}, e.on("exit", n), e.on("SIGINT", n));
|
|
162
161
|
} catch (r) {
|
|
@@ -165,44 +164,48 @@ async function L(t) {
|
|
|
165
164
|
}
|
|
166
165
|
}
|
|
167
166
|
|
|
168
|
-
function
|
|
167
|
+
function N(r) {
|
|
169
168
|
try {
|
|
170
169
|
o.unlinkSync(r), u.info("Unlocked " + r);
|
|
171
170
|
} catch (r) {}
|
|
172
171
|
}
|
|
173
172
|
|
|
174
|
-
function
|
|
173
|
+
function G(r) {
|
|
175
174
|
return r.startsWith("[") && r.endsWith("]") ? JSON.parse(r) : r;
|
|
176
175
|
}
|
|
177
176
|
|
|
178
|
-
function
|
|
179
|
-
return
|
|
177
|
+
function H(r) {
|
|
178
|
+
return a(r) ? 1 == r.length ? r[0] : JSON.stringify(r) : r;
|
|
180
179
|
}
|
|
181
180
|
|
|
182
|
-
function
|
|
181
|
+
function J(r) {
|
|
183
182
|
r = r.split("/");
|
|
184
183
|
return r[0] || (r[0] = "/"), r;
|
|
185
184
|
}
|
|
186
185
|
|
|
187
|
-
function
|
|
186
|
+
function U(r) {
|
|
188
187
|
return r.split(".");
|
|
189
188
|
}
|
|
190
189
|
|
|
191
190
|
function Q(r) {
|
|
191
|
+
return x(r) ? [ U(r) ] : a(r) ? r.map(r => x(r) ? U(r) : r) : void 0;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
function z(r) {
|
|
192
195
|
return r.join(".");
|
|
193
196
|
}
|
|
194
197
|
|
|
195
|
-
function
|
|
198
|
+
function K(r, t = 0) {
|
|
196
199
|
return Math.floor(Math.random() * (r - t)) + t;
|
|
197
200
|
}
|
|
198
201
|
|
|
199
|
-
function
|
|
202
|
+
function X(r) {
|
|
200
203
|
var t, n = {};
|
|
201
204
|
for (t of r) n[t] = 1;
|
|
202
205
|
return n;
|
|
203
206
|
}
|
|
204
207
|
|
|
205
|
-
async function
|
|
208
|
+
async function q(t, n, e, o) {
|
|
206
209
|
var i = Buffer.allocUnsafe(o);
|
|
207
210
|
for (let r = 0; r < o; ) {
|
|
208
211
|
var a = (await n.read(i, r, o - r, e + r)).bytesRead;
|
|
@@ -212,12 +215,12 @@ async function X(t, n, e, o) {
|
|
|
212
215
|
return i;
|
|
213
216
|
}
|
|
214
217
|
|
|
215
|
-
function
|
|
218
|
+
function C() {
|
|
216
219
|
var r = e.availableMemory();
|
|
217
220
|
return Math.round(r / (e.memoryUsage.rss() + r) * 100);
|
|
218
221
|
}
|
|
219
222
|
|
|
220
|
-
async function*
|
|
223
|
+
async function* V(e, t = 3) {
|
|
221
224
|
var n = e.length, o = (n < t && (t = n), new Array(n));
|
|
222
225
|
for (let r = 0; r < t; ++r) {
|
|
223
226
|
var i = o[r] = {};
|
|
@@ -243,48 +246,52 @@ async function* C(e, t = 3) {
|
|
|
243
246
|
}
|
|
244
247
|
}
|
|
245
248
|
|
|
249
|
+
function Y(r = new Date()) {
|
|
250
|
+
return Math.floor(r.getTime() / 1e3);
|
|
251
|
+
}
|
|
252
|
+
|
|
246
253
|
export * as default from "./QyUtils.js";
|
|
247
254
|
|
|
248
255
|
export {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
$ as arrayLast,
|
|
256
|
+
f as __dirname,
|
|
257
|
+
c as SpecialOperators,
|
|
258
|
+
s as SpecialFilePaths,
|
|
259
|
+
d as isMatchName,
|
|
260
|
+
m as getMatchParam,
|
|
261
|
+
p as getSizeStr,
|
|
262
|
+
h as calHash,
|
|
263
|
+
g as Hash_Key_Length,
|
|
264
|
+
y as getSubdirMapKey,
|
|
265
|
+
v as getFileMapKey,
|
|
266
|
+
b as getContentKey,
|
|
267
|
+
$ as getRandomStr,
|
|
262
268
|
w as isEmptyObj,
|
|
263
269
|
P as isNotNullObj,
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
+
x as isString,
|
|
271
|
+
S as isNumber,
|
|
272
|
+
j as isBoolean,
|
|
273
|
+
M as isFunction,
|
|
274
|
+
B as isSimpleType,
|
|
275
|
+
D as trimArrayTail,
|
|
270
276
|
T as setPromise,
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
277
|
+
A as toBuffer,
|
|
278
|
+
E as getSuffix,
|
|
279
|
+
O as ensureDir,
|
|
280
|
+
k as ensureParentDir,
|
|
281
|
+
F as getSize,
|
|
276
282
|
W as folderOrFileExists,
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
283
|
+
L as sleep,
|
|
284
|
+
R as lockExclusiveFilePath,
|
|
285
|
+
N as unlockExclusiveFilePath,
|
|
286
|
+
G as fromSingleName,
|
|
287
|
+
H as toSingleName,
|
|
288
|
+
J as pathSplit,
|
|
289
|
+
Q as ensurePropNamePathList,
|
|
290
|
+
z as propNameJoin,
|
|
291
|
+
K as randomInt,
|
|
292
|
+
X as listToMap,
|
|
293
|
+
q as readBufferAsync,
|
|
294
|
+
C as memoryPercent,
|
|
295
|
+
V as loadFileList,
|
|
296
|
+
Y as getNowSeconds
|
|
290
297
|
};
|
package/src/hackernews.js
CHANGED
|
@@ -67,7 +67,7 @@ function c(e, t) {
|
|
|
67
67
|
let g = 0;
|
|
68
68
|
for (l in c) {
|
|
69
69
|
var w = a[l];
|
|
70
|
-
j.batch.insert([ "hackernews", ...w, l ], c[l]), ++g >= C && (j.batch.run(),
|
|
70
|
+
j.batch.insert([ "hackernews", ...w, l ], c[l], !0), ++g >= C && (j.batch.run(),
|
|
71
71
|
g = 0);
|
|
72
72
|
}
|
|
73
73
|
for (m in 0 < g && j.batch.run(), c) !function e(t) {
|
package/src/simulate.js
CHANGED
|
@@ -36,18 +36,18 @@ async function b(e) {
|
|
|
36
36
|
function h(e) {
|
|
37
37
|
console.time("insertData");
|
|
38
38
|
var t, s, r, o = e.batch;
|
|
39
|
-
for (t of d) o.insert([ "hosts", t ], p[t]);
|
|
39
|
+
for (t of d) o.insert([ "hosts", t ], p[t], !0);
|
|
40
40
|
for (s of g) {
|
|
41
41
|
var i = f[s], {
|
|
42
42
|
property_type: a,
|
|
43
43
|
room_type: n,
|
|
44
44
|
bed_type: l
|
|
45
45
|
} = i;
|
|
46
|
-
o.insert([ "airbnb", a, n, l, s ], i);
|
|
46
|
+
o.insert([ "airbnb", a, n, l, s ], i, !0);
|
|
47
47
|
}
|
|
48
48
|
for (r of y) {
|
|
49
49
|
var c = v[r];
|
|
50
|
-
o.insert([ "reviews", c.listing_id, r ], c);
|
|
50
|
+
o.insert([ "reviews", c.listing_id, r ], c, !0);
|
|
51
51
|
}
|
|
52
52
|
o.run(), console.timeEnd("insertData");
|
|
53
53
|
}
|
|
@@ -71,7 +71,7 @@ async function E(e, t) {
|
|
|
71
71
|
s = a = i = o = r = void 0;
|
|
72
72
|
var s, r = e, o = _(), i = _(), a = {};
|
|
73
73
|
for (s in i) 1 == u(2) && (a[s] = i[s]);
|
|
74
|
-
r.insert([ "hosts", o.host_id ], a);
|
|
74
|
+
r.insert([ "hosts", o.host_id ], a, !0);
|
|
75
75
|
break;
|
|
76
76
|
|
|
77
77
|
case 1:
|
|
@@ -84,14 +84,14 @@ async function E(e, t) {
|
|
|
84
84
|
bed_type: p,
|
|
85
85
|
_id: f
|
|
86
86
|
} = o;
|
|
87
|
-
r.insert([ "airbnb", o, m, p, f ], c);
|
|
87
|
+
r.insert([ "airbnb", o, m, p, f ], c, !0);
|
|
88
88
|
break;
|
|
89
89
|
|
|
90
90
|
case 2:
|
|
91
91
|
v = g = d = p = m = void 0;
|
|
92
92
|
var v, m = e, p = D(), d = D(), g = {};
|
|
93
93
|
for (v in d) 1 == u(2) && (g[v] = d[v]);
|
|
94
|
-
m.insert([ "reviews", p.listing_id, p._id ], g);
|
|
94
|
+
m.insert([ "reviews", p.listing_id, p._id ], g, !0);
|
|
95
95
|
}
|
|
96
96
|
await w(u(1e3) / 1e3);
|
|
97
97
|
}
|
package/src/simulate2.js
CHANGED
|
@@ -44,7 +44,7 @@ function w(t) {
|
|
|
44
44
|
Day: i
|
|
45
45
|
} = h[o], a = h[c(h.length)], n = {};
|
|
46
46
|
for (e in a) 1 == c(2) && (n[e] = a[e]);
|
|
47
|
-
t.insert([ "flights", s, r, i, o ], n);
|
|
47
|
+
t.insert([ "flights", s, r, i, o ], n, !0);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
async function y(t, e) {
|
|
@@ -54,7 +54,7 @@ async function y(t, e) {
|
|
|
54
54
|
o = a = i = r = s = void 0;
|
|
55
55
|
var o, s = t, r = v()._key, i = v(), a = {};
|
|
56
56
|
for (o in i) 1 == c(2) && (a[o] = i[o]);
|
|
57
|
-
s.insert([ "airports", r ], a);
|
|
57
|
+
s.insert([ "airports", r ], a, !0);
|
|
58
58
|
break;
|
|
59
59
|
|
|
60
60
|
case 1:
|
|
@@ -68,7 +68,7 @@ function b(t) {
|
|
|
68
68
|
var e = t;
|
|
69
69
|
console.time("insertAirports");
|
|
70
70
|
var o, s = e.batch;
|
|
71
|
-
for (o of d) s.insert("airports/" + o._key, o);
|
|
71
|
+
for (o of d) s.insert("airports/" + o._key, o, !0);
|
|
72
72
|
s.run(), console.timeEnd("insertAirports");
|
|
73
73
|
e = t;
|
|
74
74
|
f.log("insertFlights begin"), console.time("insertFlights");
|
|
@@ -79,7 +79,7 @@ function b(t) {
|
|
|
79
79
|
Month: l,
|
|
80
80
|
Day: c
|
|
81
81
|
} = a;
|
|
82
|
-
i.insert(`flights/${n}/${l}/${c}/` + t, a);
|
|
82
|
+
i.insert(`flights/${n}/${l}/${c}/` + t, a, !0);
|
|
83
83
|
}
|
|
84
84
|
i.run(), f.log("insertFlights end"), console.timeEnd("insertFlights"), console.time("createFlightsIndex");
|
|
85
85
|
for (r of e.dir("flights").subdirList) for (var m of r.subdirList) for (var g of m.subdirList) i.createIndex(g, [ "_from", "_to" ]);
|
|
@@ -101,7 +101,7 @@ function b(t) {
|
|
|
101
101
|
await !console.timeEnd("loadData"), console.log(`airports:${d.length}, flights:` + h.length);
|
|
102
102
|
var s = new n(p, {
|
|
103
103
|
fileLogLevel: "basic",
|
|
104
|
-
maxInMemSnapshotCount:
|
|
104
|
+
maxInMemSnapshotCount: 3
|
|
105
105
|
}), r = (t && (await s.start(), b(s), await s.stop()), await s.start(), g(s),
|
|
106
106
|
`simulate ${e} ` + o), i = (console.time(r), console.time("simulateStop"), []);
|
|
107
107
|
for (let t = 0; t < e; ++t) i.push(y(s, o));
|
package/src/soc_pokec.js
CHANGED
|
@@ -50,7 +50,7 @@ let d = "./tmp/soc_pokec", w = new e(d);
|
|
|
50
50
|
let e = w.batch, t = 0;
|
|
51
51
|
for (a in r) {
|
|
52
52
|
var c = r[a];
|
|
53
|
-
e.insertP([ "relationships", a ], c), 3e4 < ++t && (await e.run(!0),
|
|
53
|
+
e.insertP([ "relationships", a ], c, !0), 3e4 < ++t && (await e.run(!0),
|
|
54
54
|
t = 0);
|
|
55
55
|
}
|
|
56
56
|
await e.run(!0), console.timeEnd("insertData"), s.close();
|