geonix 1.21.2 → 1.22.2
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/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/Request.js +2 -2
- package/src/Service.js +3 -3
- package/src/Util.js +19 -3
- package/test/middleware.js +16 -14
- package/versions +0 -89
package/index.d.ts
CHANGED
|
@@ -227,6 +227,7 @@ export function parseMultipart(req: Request, _options: any): Promise<{
|
|
|
227
227
|
}[]>;
|
|
228
228
|
export function tempFilename(): any;
|
|
229
229
|
export function randomSafeId(size?: number): string;
|
|
230
|
+
export function deepMerge(target: any, ...source: any[]): any;
|
|
230
231
|
export function sleep(delay: number): Promise<any>;
|
|
231
232
|
export function nextTick(): Promise<any>;
|
|
232
233
|
export function picoid(size?: number): any;
|
package/package.json
CHANGED
package/src/Request.js
CHANGED
|
@@ -143,7 +143,7 @@ export async function directRequest(identifier, method, args, context, options,
|
|
|
143
143
|
* @param {string|number} payload
|
|
144
144
|
*/
|
|
145
145
|
export async function Publish(subject, payload) {
|
|
146
|
-
connection.publishRaw(
|
|
146
|
+
connection.publishRaw(subject, Buffer.from(payload));
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
/**
|
|
@@ -158,7 +158,7 @@ export async function Subscribe(subject, callback) {
|
|
|
158
158
|
return;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
const subscription = await connection.subscribe(
|
|
161
|
+
const subscription = await connection.subscribe(subject);
|
|
162
162
|
for await (const event of subscription) {
|
|
163
163
|
callback(event.data);
|
|
164
164
|
}
|
package/src/Service.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { connection } from "./Connection.js";
|
|
2
|
-
import { picoid, sleep, hash, getSecondsSinceMidnight, OverlayObject, GeonixVersion, getFirstItemFromAsyncIterable, getNetworkAddresses } from "./Util.js";
|
|
2
|
+
import { picoid, sleep, hash, getSecondsSinceMidnight, OverlayObject, GeonixVersion, getFirstItemFromAsyncIterable, getNetworkAddresses, deepMerge } from "./Util.js";
|
|
3
3
|
import { webserver } from "./WebServer.js";
|
|
4
4
|
import { createConnection } from "net";
|
|
5
5
|
import { EOL } from "os";
|
|
@@ -54,7 +54,7 @@ export class Service {
|
|
|
54
54
|
#options = defaultServiceOptions;
|
|
55
55
|
|
|
56
56
|
async #start(options = {}) {
|
|
57
|
-
this.#options = { ...this.#options, ...options };
|
|
57
|
+
this.#options = deepMerge(this.#options, options); // { ...this.#options, ...options };
|
|
58
58
|
|
|
59
59
|
await webserver.waitUntilReady();
|
|
60
60
|
await connection.waitUntilReady();
|
|
@@ -227,7 +227,7 @@ export class Service {
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
async #sub(subject, handler) {
|
|
230
|
-
const subscription = await connection.subscribe(
|
|
230
|
+
const subscription = await connection.subscribe(subject);
|
|
231
231
|
const processor = async () => {
|
|
232
232
|
for await (const event of subscription) {
|
|
233
233
|
handler(event.data);
|
package/src/Util.js
CHANGED
|
@@ -287,9 +287,7 @@ export async function parseMultipart(req, _options) {
|
|
|
287
287
|
|
|
288
288
|
let combined = Buffer.concat([lastChunk, chunk]);
|
|
289
289
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
while (combined.length >= boundary.length + 2 && $dbg-- > 0) {
|
|
290
|
+
while (combined.length >= boundary.length + 2) {
|
|
293
291
|
const boundaryIndex = combined.indexOf(boundary);
|
|
294
292
|
const isLastBoundary = combined[boundaryIndex + boundary.length] === 45 && combined[boundaryIndex + boundary.length + 1] === 45;
|
|
295
293
|
|
|
@@ -385,4 +383,22 @@ export function randomSafeId(size = 12) {
|
|
|
385
383
|
}
|
|
386
384
|
|
|
387
385
|
return result;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
export function deepMerge(target, ...source) {
|
|
389
|
+
for (const src of source) {
|
|
390
|
+
for (const key in src) {
|
|
391
|
+
if (src[key] instanceof Object) {
|
|
392
|
+
if (!target[key]) {
|
|
393
|
+
target[key] = {};
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
deepMerge(target[key], src[key]);
|
|
397
|
+
} else {
|
|
398
|
+
target[key] = src[key];
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
return target;
|
|
388
404
|
}
|
package/test/middleware.js
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import { Router } from "express";
|
|
2
1
|
import { ServeStatic, Service } from "../exports.js";
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
console.log("THIS:", this);
|
|
3
|
+
class First extends Service {
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
"GET /first"(req, res) {
|
|
6
|
+
res.end(JSON.stringify(req.cookies));
|
|
7
|
+
}
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
}
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
class Second extends Service {
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
"GET /second"(req, res) {
|
|
14
|
+
res.end(JSON.stringify(req.cookies));
|
|
15
15
|
}
|
|
16
|
+
}
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
class Third extends Service {
|
|
19
|
+
"GET /third"(req, res) {
|
|
20
|
+
res.end(JSON.stringify(req.cookies));
|
|
21
|
+
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Third.start();
|
|
25
|
+
First.start({ middleware: { raw: true } });
|
|
26
|
+
Second.start();
|
package/versions
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
npm unpublish geonix@1.1.0
|
|
2
|
-
npm unpublish geonix@1.1.1
|
|
3
|
-
npm unpublish geonix@1.1.2
|
|
4
|
-
npm unpublish geonix@1.1.5
|
|
5
|
-
npm unpublish geonix@1.1.6
|
|
6
|
-
npm unpublish geonix@1.1.7
|
|
7
|
-
npm unpublish geonix@1.1.8
|
|
8
|
-
npm unpublish geonix@1.1.9
|
|
9
|
-
npm unpublish geonix@1.1.10
|
|
10
|
-
npm unpublish geonix@1.1.11
|
|
11
|
-
npm unpublish geonix@1.1.12
|
|
12
|
-
npm unpublish geonix@1.1.13
|
|
13
|
-
npm unpublish geonix@1.1.14
|
|
14
|
-
npm unpublish geonix@1.1.15
|
|
15
|
-
npm unpublish geonix@1.1.16
|
|
16
|
-
npm unpublish geonix@1.1.17
|
|
17
|
-
npm unpublish geonix@1.1.18
|
|
18
|
-
npm unpublish geonix@1.1.19
|
|
19
|
-
npm unpublish geonix@1.1.20
|
|
20
|
-
npm unpublish geonix@1.1.21
|
|
21
|
-
npm unpublish geonix@1.1.22
|
|
22
|
-
npm unpublish geonix@1.1.23
|
|
23
|
-
npm unpublish geonix@1.1.24
|
|
24
|
-
npm unpublish geonix@1.1.25
|
|
25
|
-
npm unpublish geonix@1.1.26
|
|
26
|
-
npm unpublish geonix@1.1.27
|
|
27
|
-
npm unpublish geonix@1.1.28
|
|
28
|
-
npm unpublish geonix@1.1.29
|
|
29
|
-
npm unpublish geonix@1.1.30
|
|
30
|
-
npm unpublish geonix@1.1.31
|
|
31
|
-
npm unpublish geonix@1.1.32
|
|
32
|
-
npm unpublish geonix@1.1.33
|
|
33
|
-
npm unpublish geonix@1.1.34
|
|
34
|
-
npm unpublish geonix@1.1.35
|
|
35
|
-
npm unpublish geonix@1.1.36
|
|
36
|
-
npm unpublish geonix@1.1.37
|
|
37
|
-
npm unpublish geonix@1.1.38
|
|
38
|
-
npm unpublish geonix@1.1.39
|
|
39
|
-
npm unpublish geonix@1.1.40
|
|
40
|
-
npm unpublish geonix@1.1.41
|
|
41
|
-
npm unpublish geonix@1.1.42
|
|
42
|
-
npm unpublish geonix@1.1.43
|
|
43
|
-
npm unpublish geonix@1.1.44
|
|
44
|
-
npm unpublish geonix@1.1.45
|
|
45
|
-
npm unpublish geonix@1.1.46
|
|
46
|
-
npm unpublish geonix@1.1.47
|
|
47
|
-
npm unpublish geonix@1.1.48
|
|
48
|
-
npm unpublish geonix@1.1.50
|
|
49
|
-
npm unpublish geonix@1.1.51
|
|
50
|
-
npm unpublish geonix@1.1.52
|
|
51
|
-
npm unpublish geonix@1.2.0
|
|
52
|
-
npm unpublish geonix@1.2.1
|
|
53
|
-
npm unpublish geonix@1.2.2
|
|
54
|
-
npm unpublish geonix@1.2.3
|
|
55
|
-
npm unpublish geonix@1.2.4
|
|
56
|
-
npm unpublish geonix@1.2.5
|
|
57
|
-
npm unpublish geonix@1.2.6
|
|
58
|
-
npm unpublish geonix@1.2.7
|
|
59
|
-
npm unpublish geonix@1.2.8
|
|
60
|
-
npm unpublish geonix@1.2.9
|
|
61
|
-
npm unpublish geonix@1.2.10
|
|
62
|
-
npm unpublish geonix@1.2.11
|
|
63
|
-
npm unpublish geonix@1.2.12
|
|
64
|
-
npm unpublish geonix@1.2.14
|
|
65
|
-
npm unpublish geonix@1.3.0
|
|
66
|
-
npm unpublish geonix@1.3.1
|
|
67
|
-
npm unpublish geonix@1.3.2
|
|
68
|
-
npm unpublish geonix@1.3.3
|
|
69
|
-
npm unpublish geonix@1.4.0
|
|
70
|
-
npm unpublish geonix@1.4.1
|
|
71
|
-
npm unpublish geonix@1.4.2
|
|
72
|
-
npm unpublish geonix@1.4.3
|
|
73
|
-
npm unpublish geonix@1.4.4
|
|
74
|
-
npm unpublish geonix@1.4.5
|
|
75
|
-
npm unpublish geonix@1.4.6
|
|
76
|
-
npm unpublish geonix@1.4.7
|
|
77
|
-
npm unpublish geonix@1.4.8
|
|
78
|
-
npm unpublish geonix@1.5.0
|
|
79
|
-
npm unpublish geonix@1.5.1
|
|
80
|
-
npm unpublish geonix@1.5.2
|
|
81
|
-
npm unpublish geonix@1.5.3
|
|
82
|
-
npm unpublish geonix@1.5.5
|
|
83
|
-
npm unpublish geonix@1.6.0
|
|
84
|
-
npm unpublish geonix@1.7.0
|
|
85
|
-
npm unpublish geonix@1.7.1
|
|
86
|
-
npm unpublish geonix@1.7.2
|
|
87
|
-
npm unpublish geonix@1.7.3
|
|
88
|
-
npm unpublish geonix@1.7.4
|
|
89
|
-
npm unpublish geonix@1.7.5
|