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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonix",
3
- "version": "1.21.2",
3
+ "version": "1.22.2",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "bin": {
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(`gx.sub.${subject}`, Buffer.from(payload));
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(`gx.sub.${subject}`);
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(`gx.sub.${subject}`);
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
- let $dbg = 3;
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
  }
@@ -1,24 +1,26 @@
1
- import { Router } from "express";
2
1
  import { ServeStatic, Service } from "../exports.js";
3
2
 
4
- function special(req, res) {
5
- console.log("THIS:", this);
3
+ class First extends Service {
6
4
 
7
- res.send(`Hello ${this.value}`);
8
- };
5
+ "GET /first"(req, res) {
6
+ res.end(JSON.stringify(req.cookies));
7
+ }
9
8
 
10
- class ApplicationService extends Service {
9
+ }
11
10
 
12
- value = "World!";
11
+ class Second extends Service {
13
12
 
14
- async onStart() {
13
+ "GET /second"(req, res) {
14
+ res.end(JSON.stringify(req.cookies));
15
15
  }
16
+ }
16
17
 
17
- "GET *" = [special, ServeStatic("test/static", { indexOn404: true })];
18
- // "GET *" = [(req, res) => {
19
- // res.send(`Hello ${this.value}`);
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
- ApplicationService.start();
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