prostgles-server 2.0.146 → 2.0.149
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/AuthHandler.d.ts +15 -13
- package/dist/AuthHandler.d.ts.map +1 -1
- package/dist/AuthHandler.js +43 -44
- package/dist/AuthHandler.js.map +1 -1
- package/dist/DBEventsManager.d.ts +6 -5
- package/dist/DBEventsManager.d.ts.map +1 -1
- package/dist/DBEventsManager.js +8 -2
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DboBuilder.d.ts +54 -50
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +242 -206
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts +5 -5
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/FileManager.js +59 -31
- package/dist/FileManager.js.map +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js +17 -14
- package/dist/Filtering.js.map +1 -1
- package/dist/PostgresNotifListenManager.d.ts +3 -3
- package/dist/PostgresNotifListenManager.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.js +7 -5
- package/dist/PostgresNotifListenManager.js.map +1 -1
- package/dist/Prostgles.d.ts +6 -9
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +125 -86
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager.d.ts +8 -8
- package/dist/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager.js +58 -52
- package/dist/PubSubManager.js.map +1 -1
- package/dist/QueryBuilder.d.ts +6 -5
- package/dist/QueryBuilder.d.ts.map +1 -1
- package/dist/QueryBuilder.js +124 -89
- package/dist/QueryBuilder.js.map +1 -1
- package/dist/SyncReplication.js +38 -35
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig.d.ts +0 -1
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +36 -28
- package/dist/TableConfig.js.map +1 -1
- package/dist/shortestPath.d.ts.map +1 -1
- package/dist/shortestPath.js +2 -1
- package/dist/shortestPath.js.map +1 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -1
- package/dist/utils.js.map +1 -1
- package/lib/AuthHandler.ts +50 -40
- package/lib/DBEventsManager.ts +14 -7
- package/lib/DboBuilder.ts +231 -195
- package/lib/FileManager.ts +30 -21
- package/lib/Filtering.ts +19 -16
- package/lib/PostgresNotifListenManager.ts +11 -10
- package/lib/Prostgles.ts +89 -73
- package/lib/PubSubManager.ts +13 -11
- package/lib/QueryBuilder.ts +53 -29
- package/lib/SyncReplication.ts +10 -10
- package/lib/TableConfig.ts +23 -15
- package/lib/shortestPath.ts +6 -4
- package/lib/utils.ts +3 -2
- package/package.json +4 -3
- package/tests/client/PID.txt +1 -1
- package/tests/client/index.js +10 -7
- package/tests/client/index.ts +12 -8
- package/tests/client/package-lock.json +14 -14
- package/tests/client/package.json +2 -2
- package/tests/client/tsconfig.json +2 -2
- package/tests/client_only_queries.js +127 -104
- package/tests/client_only_queries.ts +43 -17
- package/tests/isomorphic_queries.js +22 -6
- package/tests/isomorphic_queries.ts +18 -6
- package/tests/server/package-lock.json +21 -19
- package/tests/server/package.json +2 -2
- package/tests/server/tsconfig.json +2 -2
- package/tsconfig.json +3 -2
|
@@ -6,45 +6,62 @@ async function client_only(db, auth, log, methods) {
|
|
|
6
6
|
const testRealtime = () => {
|
|
7
7
|
log("Started testRealtime");
|
|
8
8
|
return new Promise(async (resolve, reject) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
9
|
+
try {
|
|
10
|
+
/* METHODS */
|
|
11
|
+
const t222 = await methods.get();
|
|
12
|
+
assert_1.strict.equal(t222, 222, "methods.get() failed");
|
|
13
|
+
log("SQL Full result");
|
|
14
|
+
/* RAWSQL */
|
|
15
|
+
await (0, isomorphic_queries_1.tryRunP)("SQL Full result", async (resolve, reject) => {
|
|
16
|
+
const sqlStatement = await db.sql("SELECT $1", [1], { returnType: "statement" });
|
|
17
|
+
assert_1.strict.equal(sqlStatement, "SELECT 1", "db.sql statement query failed");
|
|
18
|
+
const arrayMode = await db.sql("SELECT 1 as a, 2 as a", undefined, { returnType: "arrayMode" });
|
|
19
|
+
assert_1.strict.equal(arrayMode.rows?.[0].join("."), "1.2", "db.sql statement arrayMode failed");
|
|
20
|
+
assert_1.strict.equal(arrayMode.fields?.map(f => f.name).join("."), "a.a", "db.sql statement arrayMode failed");
|
|
21
|
+
const select1 = await db.sql("SELECT $1 as col1", [1], { returnType: "rows" });
|
|
22
|
+
assert_1.strict.deepStrictEqual(select1[0], { col1: 1 }, "db.sql justRows query failed");
|
|
23
|
+
const fullResult = await db.sql("SELECT $1 as col1", [1]);
|
|
24
|
+
// console.log(fullResult)
|
|
25
|
+
assert_1.strict.deepStrictEqual(fullResult.rows[0], { col1: 1 }, "db.sql query failed");
|
|
26
|
+
assert_1.strict.deepStrictEqual(fullResult.fields, [{
|
|
27
|
+
name: 'col1',
|
|
28
|
+
tableID: 0,
|
|
29
|
+
columnID: 0,
|
|
30
|
+
dataTypeID: 23,
|
|
31
|
+
dataTypeSize: 4,
|
|
32
|
+
dataTypeModifier: -1,
|
|
33
|
+
format: 'text',
|
|
34
|
+
dataType: 'int4',
|
|
35
|
+
udt_name: 'int4',
|
|
36
|
+
tsDataType: "number"
|
|
37
|
+
}], "db.sql query failed");
|
|
38
|
+
resolve(true);
|
|
39
|
+
}, log);
|
|
40
|
+
log("sql LISTEN NOTIFY events");
|
|
41
|
+
await (0, isomorphic_queries_1.tryRunP)("sql LISTEN NOTIFY events", async (resolve, reject) => {
|
|
42
|
+
const sub = await db.sql("LISTEN chnl ");
|
|
43
|
+
// console.log({ sub })
|
|
44
|
+
sub.addListener(notif => {
|
|
45
|
+
// console.log({ notif })
|
|
46
|
+
if (notif === "hello")
|
|
47
|
+
resolve(true);
|
|
48
|
+
else
|
|
49
|
+
reject("Something went bad");
|
|
50
|
+
});
|
|
51
|
+
db.sql("NOTIFY chnl , 'hello'; ");
|
|
52
|
+
}, log);
|
|
53
|
+
log("sql NOTICE events");
|
|
54
|
+
await (0, isomorphic_queries_1.tryRunP)("sql NOTICE events", async (resolve, reject) => {
|
|
55
|
+
const sub = await db.sql("", {}, { returnType: "noticeSubscription" });
|
|
56
|
+
// console.log({ sub })
|
|
57
|
+
sub.addListener(notice => {
|
|
58
|
+
// console.log({ notif })
|
|
59
|
+
if (notice.message === "hello2")
|
|
60
|
+
resolve(true);
|
|
61
|
+
else
|
|
62
|
+
reject("Something went bad");
|
|
63
|
+
});
|
|
64
|
+
db.sql(`
|
|
48
65
|
DO $$
|
|
49
66
|
BEGIN
|
|
50
67
|
|
|
@@ -52,72 +69,78 @@ async function client_only(db, auth, log, methods) {
|
|
|
52
69
|
|
|
53
70
|
END $$;
|
|
54
71
|
`);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
let updt = 0;
|
|
96
|
-
const sync = await db.planes.sync({}, { handlesOnData: true, patchText: true }, (planes, deltas) => {
|
|
97
|
-
const x20 = planes.filter(p => p.x == 20).length;
|
|
98
|
-
const x10 = planes.filter(p => p.x == 10);
|
|
99
|
-
log(`sync: \nx10 -> ${x10.length} \nx20 -> ${x20}`);
|
|
100
|
-
let update = false;
|
|
101
|
-
planes.map(p => {
|
|
102
|
-
// if(p.y === 1) window.up = p;
|
|
103
|
-
if (typeof p.x !== "number")
|
|
104
|
-
log(typeof p.x);
|
|
105
|
-
if (+p.x < 10) {
|
|
106
|
-
updt++;
|
|
107
|
-
update = true;
|
|
108
|
-
p.$update({ x: 10 });
|
|
72
|
+
}, log);
|
|
73
|
+
/* REPLICATION */
|
|
74
|
+
let start = Date.now();
|
|
75
|
+
const msLimit = 20000;
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
const msg = "Replication test failed due to taking longer than " + msLimit + "ms";
|
|
78
|
+
log(msg);
|
|
79
|
+
reject(msg);
|
|
80
|
+
}, msLimit);
|
|
81
|
+
await db.planes.delete();
|
|
82
|
+
let inserts = new Array(100).fill(null).map((d, i) => ({ id: i, flight_number: `FN${i}`, x: Math.random(), y: i }));
|
|
83
|
+
await db.planes.insert(inserts);
|
|
84
|
+
if ((await db.planes.count()) !== 100)
|
|
85
|
+
throw "Not 100 planes";
|
|
86
|
+
/**
|
|
87
|
+
* Two listeners are added at the same time to dbo.planes (which has 100 records):
|
|
88
|
+
* subscribe({ x: 10 }
|
|
89
|
+
* sync({}
|
|
90
|
+
*
|
|
91
|
+
* sync starts updating x to 10
|
|
92
|
+
* subscribe waits for 100 records of x=10 and then updates everything to x=20
|
|
93
|
+
* sync waits for 100 records of x=20 and finishes the test
|
|
94
|
+
*/
|
|
95
|
+
/* After all sync records are updated to x10 here we'll update them to x20 */
|
|
96
|
+
const sP = await db.planes.subscribe({ x: 10 }, {}, async (planes) => {
|
|
97
|
+
const p10 = planes.filter(p => p.x == 10);
|
|
98
|
+
log("sub: x10 -> ", p10.length, " x20 ->", planes.filter(p => p.x == 20).length);
|
|
99
|
+
if (p10.length === 100) {
|
|
100
|
+
// db.planes.findOne({}, { select: { last_updated: "$max"}}).then(log);
|
|
101
|
+
sP.unsubscribe();
|
|
102
|
+
log("Update to x20 start");
|
|
103
|
+
const dLastUpdated = Math.max(...p10.map(v => +v.last_updated));
|
|
104
|
+
const last_updated = Date.now();
|
|
105
|
+
if (dLastUpdated >= last_updated)
|
|
106
|
+
throw "dLastUpdated >= last_updated should not happen";
|
|
107
|
+
await db.planes.update({}, { x: 20, last_updated });
|
|
108
|
+
log("Updated to x20", await db.planes.count({ x: 20 }));
|
|
109
|
+
// db.planes.findOne({}, { select: { last_updated: "$max"}}).then(log)
|
|
109
110
|
}
|
|
110
111
|
});
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
log(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
112
|
+
let updt = 0;
|
|
113
|
+
const sync = await db.planes.sync({}, { handlesOnData: true, patchText: true }, (planes, deltas) => {
|
|
114
|
+
const x20 = planes.filter(p => p.x == 20).length;
|
|
115
|
+
const x10 = planes.filter(p => p.x == 10);
|
|
116
|
+
log(`sync: \nx10 -> ${x10.length} \nx20 -> ${x20}`);
|
|
117
|
+
let update = false;
|
|
118
|
+
planes.map(p => {
|
|
119
|
+
// if(p.y === 1) window.up = p;
|
|
120
|
+
if (typeof p.x !== "number")
|
|
121
|
+
log(typeof p.x);
|
|
122
|
+
if (+p.x < 10) {
|
|
123
|
+
updt++;
|
|
124
|
+
update = true;
|
|
125
|
+
p.$update({ x: 10 });
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
// if(update) log("$update({ x: 10 })", updt)
|
|
129
|
+
if (x20 === 100) {
|
|
130
|
+
// log(22)
|
|
131
|
+
// console.timeEnd("test")
|
|
132
|
+
log("Finished replication test. Inserting 100 rows then updating two times took: " + (Date.now() - start) + "ms");
|
|
133
|
+
resolve(true);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
// sync.upsert(inserts)
|
|
137
|
+
// await db.planes.update({}, { x: 20, last_updated: Date.now() });
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
log(JSON.stringify(err));
|
|
141
|
+
await tout(1000);
|
|
142
|
+
throw err;
|
|
143
|
+
}
|
|
121
144
|
});
|
|
122
145
|
};
|
|
123
146
|
/* TODO: SECURITY */
|
|
@@ -175,7 +198,7 @@ async function client_only(db, auth, log, methods) {
|
|
|
175
198
|
{ id: 1, public: 'public data' },
|
|
176
199
|
{ id: 2, public: 'public data' }
|
|
177
200
|
]);
|
|
178
|
-
});
|
|
201
|
+
}, log);
|
|
179
202
|
}
|
|
180
203
|
}
|
|
181
204
|
exports.default = client_only;
|
|
@@ -9,26 +9,45 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
|
|
|
9
9
|
const testRealtime = () => {
|
|
10
10
|
log("Started testRealtime")
|
|
11
11
|
return new Promise(async (resolve, reject) => {
|
|
12
|
+
try {
|
|
13
|
+
|
|
12
14
|
/* METHODS */
|
|
13
15
|
const t222 = await methods.get();
|
|
14
16
|
assert.equal(t222, 222, "methods.get() failed");
|
|
15
17
|
|
|
18
|
+
log("SQL Full result")
|
|
16
19
|
/* RAWSQL */
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const select1 = await db.sql("SELECT $1 as col1", [1], { returnType: "rows" });
|
|
25
|
-
assert.deepStrictEqual(select1[0], { col1: 1 }, "db.sql justRows query failed");
|
|
26
|
-
|
|
27
|
-
const fullResult = await db.sql("SELECT $1 as col1", [1]);
|
|
28
|
-
// console.log(fullResult)
|
|
29
|
-
assert.deepStrictEqual(fullResult.rows[0], { col1: 1 }, "db.sql query failed");
|
|
30
|
-
assert.deepStrictEqual(fullResult.fields, [ { name: 'col1', tableID: 0,columnID: 0, dataTypeID: 23, dataTypeSize: 4, dataTypeModifier: -1,format: 'text', dataType: 'int4' } ] , "db.sql query failed");
|
|
20
|
+
await tryRunP("SQL Full result", async (resolve, reject) => {
|
|
21
|
+
const sqlStatement = await db.sql("SELECT $1", [1], { returnType: "statement" });
|
|
22
|
+
assert.equal(sqlStatement, "SELECT 1", "db.sql statement query failed");
|
|
23
|
+
|
|
24
|
+
const arrayMode = await db.sql("SELECT 1 as a, 2 as a", undefined, { returnType: "arrayMode" });
|
|
25
|
+
assert.equal(arrayMode.rows?.[0].join("."), "1.2", "db.sql statement arrayMode failed");
|
|
26
|
+
assert.equal(arrayMode.fields?.map(f => f.name).join("."), "a.a", "db.sql statement arrayMode failed");
|
|
31
27
|
|
|
28
|
+
const select1 = await db.sql("SELECT $1 as col1", [1], { returnType: "rows" });
|
|
29
|
+
assert.deepStrictEqual(select1[0], { col1: 1 }, "db.sql justRows query failed");
|
|
30
|
+
|
|
31
|
+
const fullResult = await db.sql("SELECT $1 as col1", [1]);
|
|
32
|
+
// console.log(fullResult)
|
|
33
|
+
assert.deepStrictEqual(fullResult.rows[0], { col1: 1 }, "db.sql query failed");
|
|
34
|
+
assert.deepStrictEqual(fullResult.fields, [ {
|
|
35
|
+
name: 'col1',
|
|
36
|
+
tableID: 0,
|
|
37
|
+
columnID: 0,
|
|
38
|
+
dataTypeID: 23,
|
|
39
|
+
dataTypeSize: 4,
|
|
40
|
+
dataTypeModifier: -1,
|
|
41
|
+
format: 'text',
|
|
42
|
+
dataType: 'int4',
|
|
43
|
+
udt_name: 'int4',
|
|
44
|
+
tsDataType: "number"
|
|
45
|
+
}] , "db.sql query failed");
|
|
46
|
+
resolve(true);
|
|
47
|
+
}, log);
|
|
48
|
+
|
|
49
|
+
log("sql LISTEN NOTIFY events")
|
|
50
|
+
|
|
32
51
|
await tryRunP("sql LISTEN NOTIFY events", async (resolve, reject) => {
|
|
33
52
|
|
|
34
53
|
const sub = await db.sql("LISTEN chnl ");
|
|
@@ -39,7 +58,9 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
|
|
|
39
58
|
else reject("Something went bad")
|
|
40
59
|
});
|
|
41
60
|
db.sql("NOTIFY chnl , 'hello'; ");
|
|
42
|
-
});
|
|
61
|
+
}, log);
|
|
62
|
+
|
|
63
|
+
log("sql NOTICE events")
|
|
43
64
|
await tryRunP("sql NOTICE events", async (resolve, reject) => {
|
|
44
65
|
|
|
45
66
|
const sub = await db.sql("", {}, { returnType: "noticeSubscription" });
|
|
@@ -57,7 +78,7 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
|
|
|
57
78
|
|
|
58
79
|
END $$;
|
|
59
80
|
`);
|
|
60
|
-
});
|
|
81
|
+
}, log);
|
|
61
82
|
|
|
62
83
|
|
|
63
84
|
/* REPLICATION */
|
|
@@ -135,6 +156,11 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
|
|
|
135
156
|
// await db.planes.update({}, { x: 20, last_updated: Date.now() });
|
|
136
157
|
|
|
137
158
|
|
|
159
|
+
} catch(err){
|
|
160
|
+
log(JSON.stringify(err));
|
|
161
|
+
await tout(1000);
|
|
162
|
+
throw err;
|
|
163
|
+
}
|
|
138
164
|
});
|
|
139
165
|
|
|
140
166
|
}
|
|
@@ -205,7 +231,7 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
|
|
|
205
231
|
{ id: 1, public: 'public data' },
|
|
206
232
|
{ id: 2, public: 'public data' }
|
|
207
233
|
]);
|
|
208
|
-
});
|
|
234
|
+
}, log);
|
|
209
235
|
}
|
|
210
236
|
|
|
211
237
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -22,19 +26,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
26
|
exports.tryRunP = exports.tryRun = void 0;
|
|
23
27
|
const assert_1 = require("assert");
|
|
24
28
|
const fs = __importStar(require("fs"));
|
|
25
|
-
async function tryRun(desc, func) {
|
|
29
|
+
async function tryRun(desc, func, log) {
|
|
26
30
|
try {
|
|
27
31
|
await func();
|
|
28
32
|
}
|
|
29
33
|
catch (err) {
|
|
30
34
|
console.error(desc + " FAILED:");
|
|
31
|
-
|
|
35
|
+
log?.("FAIL: ", err);
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
throw err;
|
|
38
|
+
}, 2000);
|
|
32
39
|
}
|
|
33
40
|
}
|
|
34
41
|
exports.tryRun = tryRun;
|
|
35
|
-
function tryRunP(desc, func) {
|
|
36
|
-
return new Promise((rv, rj) => {
|
|
37
|
-
|
|
42
|
+
function tryRunP(desc, func, log) {
|
|
43
|
+
return new Promise(async (rv, rj) => {
|
|
44
|
+
try {
|
|
45
|
+
await func(rv, rj);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
log?.(JSON.stringify(err));
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
log?.("Throw err");
|
|
51
|
+
throw err;
|
|
52
|
+
}, 1000);
|
|
53
|
+
}
|
|
38
54
|
});
|
|
39
55
|
}
|
|
40
56
|
exports.tryRunP = tryRunP;
|
|
@@ -4,21 +4,33 @@ import { DbHandler} from "../dist/Prostgles";
|
|
|
4
4
|
import { DBHandlerClient } from "./client/index";
|
|
5
5
|
import * as fs from "fs";
|
|
6
6
|
|
|
7
|
-
export async function tryRun(desc: string, func: () => any){
|
|
7
|
+
export async function tryRun(desc: string, func: () => any, log?: Function){
|
|
8
8
|
try {
|
|
9
9
|
await func();
|
|
10
10
|
} catch(err) {
|
|
11
11
|
console.error(desc + " FAILED:");
|
|
12
|
-
|
|
12
|
+
log?.("FAIL: ", err);
|
|
13
|
+
setTimeout(() => {
|
|
14
|
+
throw err;
|
|
15
|
+
|
|
16
|
+
}, 2000)
|
|
13
17
|
}
|
|
14
18
|
}
|
|
15
|
-
export function tryRunP(desc: string, func: (resolve: any, reject: any) => any){
|
|
16
|
-
return new Promise((rv, rj) => {
|
|
17
|
-
|
|
19
|
+
export function tryRunP(desc: string, func: (resolve: any, reject: any) => any, log?: Function){
|
|
20
|
+
return new Promise(async (rv, rj) => {
|
|
21
|
+
try {
|
|
22
|
+
await func(rv, rj)
|
|
23
|
+
} catch(err: any){
|
|
24
|
+
log?.(JSON.stringify(err));
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
log?.("Throw err");
|
|
27
|
+
throw err;
|
|
28
|
+
}, 1000)
|
|
29
|
+
}
|
|
18
30
|
});
|
|
19
31
|
}
|
|
20
32
|
|
|
21
|
-
export default async function isomorphic(db: Partial<DbHandler> | Partial<DBHandlerClient>){
|
|
33
|
+
export default async function isomorphic(db: Partial<DbHandler> | Partial<DBHandlerClient>) {
|
|
22
34
|
console.log("Starting isomorphic queries");
|
|
23
35
|
|
|
24
36
|
if(await db.items.count()){
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"@types/socket.io-client": "^1.4.34",
|
|
15
15
|
"express": "^4.17.1",
|
|
16
16
|
"prostgles-server": "file:../..",
|
|
17
|
-
"socket.io": "^4.5.
|
|
17
|
+
"socket.io": "^4.5.1"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"tsc-watch": "^4.5.0",
|
|
21
|
-
"typescript": "^4.
|
|
21
|
+
"typescript": "^4.7.2"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"../..": {
|
|
25
25
|
"name": "prostgles-server",
|
|
26
|
-
"version": "2.0.
|
|
26
|
+
"version": "2.0.147",
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@aws-sdk/client-s3": "^3.95.0",
|
|
@@ -31,14 +31,15 @@
|
|
|
31
31
|
"bluebird": "^3.7.2",
|
|
32
32
|
"file-type": "^16.5.3",
|
|
33
33
|
"pg-promise": "^10.11.1",
|
|
34
|
-
"prostgles-types": "^1.5.
|
|
34
|
+
"prostgles-types": "^1.5.124",
|
|
35
35
|
"sharp": "^0.30.5"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@aws-sdk/types": "^3.34.0",
|
|
39
39
|
"@types/bluebird": "^3.5.36",
|
|
40
40
|
"@types/node": "^14.14.35",
|
|
41
|
-
"
|
|
41
|
+
"@types/sharp": "^0.30.2",
|
|
42
|
+
"typescript": "^4.7.2"
|
|
42
43
|
}
|
|
43
44
|
},
|
|
44
45
|
"node_modules/@types/component-emitter": {
|
|
@@ -733,9 +734,9 @@
|
|
|
733
734
|
}
|
|
734
735
|
},
|
|
735
736
|
"node_modules/socket.io": {
|
|
736
|
-
"version": "4.5.
|
|
737
|
-
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.
|
|
738
|
-
"integrity": "sha512-
|
|
737
|
+
"version": "4.5.1",
|
|
738
|
+
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz",
|
|
739
|
+
"integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==",
|
|
739
740
|
"dependencies": {
|
|
740
741
|
"accepts": "~1.3.4",
|
|
741
742
|
"base64id": "~2.0.0",
|
|
@@ -907,9 +908,9 @@
|
|
|
907
908
|
}
|
|
908
909
|
},
|
|
909
910
|
"node_modules/typescript": {
|
|
910
|
-
"version": "4.
|
|
911
|
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.
|
|
912
|
-
"integrity": "sha512-
|
|
911
|
+
"version": "4.7.2",
|
|
912
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz",
|
|
913
|
+
"integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==",
|
|
913
914
|
"dev": true,
|
|
914
915
|
"bin": {
|
|
915
916
|
"tsc": "bin/tsc",
|
|
@@ -1430,13 +1431,14 @@
|
|
|
1430
1431
|
"@aws-sdk/types": "^3.34.0",
|
|
1431
1432
|
"@types/bluebird": "^3.5.36",
|
|
1432
1433
|
"@types/node": "^14.14.35",
|
|
1434
|
+
"@types/sharp": "^0.30.2",
|
|
1433
1435
|
"aws-sdk": "^2.1141.0",
|
|
1434
1436
|
"bluebird": "^3.7.2",
|
|
1435
1437
|
"file-type": "^16.5.3",
|
|
1436
1438
|
"pg-promise": "^10.11.1",
|
|
1437
|
-
"prostgles-types": "^1.5.
|
|
1439
|
+
"prostgles-types": "^1.5.124",
|
|
1438
1440
|
"sharp": "^0.30.5",
|
|
1439
|
-
"typescript": "^
|
|
1441
|
+
"typescript": "^4.7.2"
|
|
1440
1442
|
}
|
|
1441
1443
|
},
|
|
1442
1444
|
"proxy-addr": {
|
|
@@ -1547,9 +1549,9 @@
|
|
|
1547
1549
|
"dev": true
|
|
1548
1550
|
},
|
|
1549
1551
|
"socket.io": {
|
|
1550
|
-
"version": "4.5.
|
|
1551
|
-
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.
|
|
1552
|
-
"integrity": "sha512-
|
|
1552
|
+
"version": "4.5.1",
|
|
1553
|
+
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz",
|
|
1554
|
+
"integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==",
|
|
1553
1555
|
"requires": {
|
|
1554
1556
|
"accepts": "~1.3.4",
|
|
1555
1557
|
"base64id": "~2.0.0",
|
|
@@ -1676,9 +1678,9 @@
|
|
|
1676
1678
|
}
|
|
1677
1679
|
},
|
|
1678
1680
|
"typescript": {
|
|
1679
|
-
"version": "4.
|
|
1680
|
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.
|
|
1681
|
-
"integrity": "sha512-
|
|
1681
|
+
"version": "4.7.2",
|
|
1682
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz",
|
|
1683
|
+
"integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==",
|
|
1682
1684
|
"dev": true
|
|
1683
1685
|
},
|
|
1684
1686
|
"unpipe": {
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"@types/socket.io-client": "^1.4.34",
|
|
19
19
|
"express": "^4.17.1",
|
|
20
20
|
"prostgles-server": "file:../..",
|
|
21
|
-
"socket.io": "^4.5.
|
|
21
|
+
"socket.io": "^4.5.1"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"tsc-watch": "^4.5.0",
|
|
25
|
-
"typescript": "^4.
|
|
25
|
+
"typescript": "^4.7.2"
|
|
26
26
|
}
|
|
27
27
|
}
|
package/tsconfig.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// "files": ["lib/rootExport.ts"],
|
|
3
3
|
"files": ["lib/index.ts"],
|
|
4
4
|
"compilerOptions": {
|
|
5
|
-
"target": "
|
|
5
|
+
"target": "ES2020",
|
|
6
6
|
"lib": [
|
|
7
7
|
"es2019"
|
|
8
8
|
],
|
|
9
|
-
|
|
9
|
+
"strict": true,
|
|
10
10
|
"module": "commonjs",
|
|
11
11
|
// "removeComments": true,
|
|
12
12
|
"sourceMap": true,
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"resolveJsonModule": true,
|
|
18
18
|
// "outFile": "bundle.js",
|
|
19
19
|
// "moduleResolution": "node"
|
|
20
|
+
"keyofStringsOnly": true,
|
|
20
21
|
"declaration": true,
|
|
21
22
|
"declarationMap": true
|
|
22
23
|
},
|