topsyde-utils 1.0.90 → 1.0.92

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/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from "./types";
7
7
  export * from "./throwable";
8
8
  export * from "./enums";
9
9
  export * from "./server/controller";
10
+ export * from "./server/service";
10
11
  export * from "./server/bun/router/routes";
11
12
  export * from "./server/bun/router/router";
12
13
  export * from "./server/bun/router/router.internal";
@@ -24,6 +25,7 @@ export { default as Initializable } from "./initializable";
24
25
  export { default as Application } from "./application";
25
26
  export { default as Throwable } from "./throwable";
26
27
  export { default as Controller } from "./server/controller";
28
+ export { default as Service } from "./server/service";
27
29
  export { default as Router } from "./server/bun/router/router";
28
30
  export { default as Router_Internal } from "./server/bun/router/router.internal";
29
31
  export { default as Client } from "./server/bun/websocket/Client";
@@ -41,5 +43,5 @@ export { E_IS, E_ENVIRONMENTS } from "./enums";
41
43
  export { ControllerResponse, ControllerAction, ControllerMap, ControllerOptions } from "./server/controller";
42
44
  export { Routes } from "./server/bun/router/routes";
43
45
  export { I_WebsocketConstructor } from "./server/bun/websocket/Websocket";
44
- export { E_WebsocketMessageType } from "./server/bun/websocket/websocket.enums";
45
- export { WebsocketMessage, WebsocketChannel, WebsocketStructuredMessage, WebsocketEntityId, WebsocketEntityName, WebsocketEntityData, I_WebsocketEntity, I_WebsocketClient, I_WebsocketChannelEntity, BroadcastOptions, I_WebsocketChannel, I_WebsocketInterface, } from "./server/bun/websocket/websocket.types";
46
+ export { E_WebsocketMessageType, E_WebsocketMessagePriority } from "./server/bun/websocket/websocket.enums";
47
+ export { WebsocketMessage, WebsocketChannel, WebsocketClients, WebsocketStructuredMessage, WebsocketEntityId, WebsocketEntityName, WebsocketEntityData, I_WebsocketEntity, I_WebsocketClient, I_WebsocketChannelEntity, BroadcastOptions, I_WebsocketChannel, I_WebsocketInterface, } from "./server/bun/websocket/websocket.types";
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.E_WebsocketMessageType = exports.E_ENVIRONMENTS = exports.E_IS = exports.LOG_ICONS = exports.LOG_COLORS = exports.DEFAULT_FALSE_RESPONSE = exports.RESPONSE_METHOD_OPTIONS = exports.RESPONSE_INIT = exports.WS_ERROR_CODE = exports.HTTP_ERROR_CODE = exports.ERROR_CODE = exports.Console = exports.Lib = exports.Guards = exports.Channel = exports.Websocket = exports.Client = exports.Router_Internal = exports.Router = exports.Controller = exports.Throwable = exports.Application = exports.Initializable = exports.Singleton = void 0;
22
+ exports.E_WebsocketMessagePriority = exports.E_WebsocketMessageType = exports.E_ENVIRONMENTS = exports.E_IS = exports.LOG_ICONS = exports.LOG_COLORS = exports.DEFAULT_FALSE_RESPONSE = exports.RESPONSE_METHOD_OPTIONS = exports.RESPONSE_INIT = exports.WS_ERROR_CODE = exports.HTTP_ERROR_CODE = exports.ERROR_CODE = exports.Console = exports.Lib = exports.Guards = exports.Channel = exports.Websocket = exports.Client = exports.Router_Internal = exports.Router = exports.Service = exports.Controller = exports.Throwable = exports.Application = exports.Initializable = exports.Singleton = void 0;
23
23
  // Export all modules
24
24
  __exportStar(require("./errors"), exports);
25
25
  __exportStar(require("./singleton"), exports);
@@ -30,6 +30,7 @@ __exportStar(require("./types"), exports);
30
30
  __exportStar(require("./throwable"), exports);
31
31
  __exportStar(require("./enums"), exports);
32
32
  __exportStar(require("./server/controller"), exports);
33
+ __exportStar(require("./server/service"), exports);
33
34
  __exportStar(require("./server/bun/router/routes"), exports);
34
35
  __exportStar(require("./server/bun/router/router"), exports);
35
36
  __exportStar(require("./server/bun/router/router.internal"), exports);
@@ -53,6 +54,8 @@ var throwable_1 = require("./throwable");
53
54
  Object.defineProperty(exports, "Throwable", { enumerable: true, get: function () { return __importDefault(throwable_1).default; } });
54
55
  var controller_1 = require("./server/controller");
55
56
  Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return __importDefault(controller_1).default; } });
57
+ var service_1 = require("./server/service");
58
+ Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return __importDefault(service_1).default; } });
56
59
  var router_1 = require("./server/bun/router/router");
57
60
  Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return __importDefault(router_1).default; } });
58
61
  var router_internal_1 = require("./server/bun/router/router.internal");
@@ -86,4 +89,5 @@ Object.defineProperty(exports, "E_IS", { enumerable: true, get: function () { re
86
89
  Object.defineProperty(exports, "E_ENVIRONMENTS", { enumerable: true, get: function () { return enums_1.E_ENVIRONMENTS; } });
87
90
  var websocket_enums_1 = require("./server/bun/websocket/websocket.enums");
88
91
  Object.defineProperty(exports, "E_WebsocketMessageType", { enumerable: true, get: function () { return websocket_enums_1.E_WebsocketMessageType; } });
92
+ Object.defineProperty(exports, "E_WebsocketMessagePriority", { enumerable: true, get: function () { return websocket_enums_1.E_WebsocketMessagePriority; } });
89
93
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,iCAAiC;;;;;;;;;;;;;;;;;;;;AAEjC,qBAAqB;AACrB,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,sDAAoC;AACpC,6DAA2C;AAC3C,6DAA2C;AAC3C,sEAAoD;AACpD,0EAAwD;AACxD,gEAA8C;AAC9C,mEAAiD;AACjD,yEAAuD;AACvD,yEAAuD;AACvD,iEAA+C;AAC/C,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAEhC,yBAAyB;AACzB,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,kDAA4D;AAAnD,yHAAA,OAAO,OAAc;AAC9B,qDAA+D;AAAtD,iHAAA,OAAO,OAAU;AAC1B,uEAAiF;AAAxE,mIAAA,OAAO,OAAmB;AACnC,wDAAkE;AAAzD,iHAAA,OAAO,OAAU;AAC1B,8DAAwE;AAA/D,uHAAA,OAAO,OAAa;AAC7B,0DAAoE;AAA3D,mHAAA,OAAO,OAAW;AAC3B,yCAAmD;AAA1C,iHAAA,OAAO,OAAU;AAC1B,mCAA6C;AAApC,2GAAA,OAAO,OAAO;AACvB,2CAAqD;AAA5C,mHAAA,OAAO,OAAW;AAE3B,sDAAsD;AACtD,mCAAsE;AAA7D,oGAAA,UAAU,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,uGAAA,aAAa,OAAA;AAEnD,6CAAuE;AAA9D,4GAAA,aAAa,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAC/C,mCAAyE;AAAhE,gHAAA,sBAAsB,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAEtD,iCAA+C;AAAtC,6FAAA,IAAI,OAAA;AAAE,uGAAA,cAAc,OAAA;AAI7B,0EAAgF;AAAvE,yHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,iCAAiC;;;;;;;;;;;;;;;;;;;;AAEjC,qBAAqB;AACrB,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,sDAAoC;AACpC,mDAAiC;AACjC,6DAA2C;AAC3C,6DAA2C;AAC3C,sEAAoD;AACpD,0EAAwD;AACxD,gEAA8C;AAC9C,mEAAiD;AACjD,yEAAuD;AACvD,yEAAuD;AACvD,iEAA+C;AAC/C,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAEhC,yBAAyB;AACzB,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,kDAA4D;AAAnD,yHAAA,OAAO,OAAc;AAC9B,4CAAsD;AAA7C,mHAAA,OAAO,OAAW;AAC3B,qDAA+D;AAAtD,iHAAA,OAAO,OAAU;AAC1B,uEAAiF;AAAxE,mIAAA,OAAO,OAAmB;AACnC,wDAAkE;AAAzD,iHAAA,OAAO,OAAU;AAC1B,8DAAwE;AAA/D,uHAAA,OAAO,OAAa;AAC7B,0DAAoE;AAA3D,mHAAA,OAAO,OAAW;AAC3B,yCAAmD;AAA1C,iHAAA,OAAO,OAAU;AAC1B,mCAA6C;AAApC,2GAAA,OAAO,OAAO;AACvB,2CAAqD;AAA5C,mHAAA,OAAO,OAAW;AAE3B,sDAAsD;AACtD,mCAAsE;AAA7D,oGAAA,UAAU,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,uGAAA,aAAa,OAAA;AAEnD,6CAAuE;AAA9D,4GAAA,aAAa,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAC/C,mCAAyE;AAAhE,gHAAA,sBAAsB,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAEtD,iCAA+C;AAAtC,6FAAA,IAAI,OAAA;AAAE,uGAAA,cAAc,OAAA;AAI7B,0EAA4G;AAAnG,yHAAA,sBAAsB,OAAA;AAAE,6HAAA,0BAA0B,OAAA"}
@@ -39,14 +39,14 @@ class Client {
39
39
  this.subscribe(channel_id);
40
40
  this.channels.set(channel_id, channel);
41
41
  if (send)
42
- this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_JOIN_CHANNEL, content: { channel_id } });
42
+ this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_JOIN_CHANNEL, content: { message: "Welcome to the channel", channel_id } });
43
43
  }
44
44
  leaveChannel(channel, send = true) {
45
45
  const channel_id = channel.getId();
46
46
  this.channels.delete(channel_id);
47
47
  this.unsubscribe(channel_id);
48
48
  if (send)
49
- this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_LEAVE_CHANNEL, content: { channel_id } });
49
+ this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_LEAVE_CHANNEL, content: { message: "Left the channel", channel_id } });
50
50
  }
51
51
  joinChannels(channels, send = true) {
52
52
  channels.forEach((channel) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Client.ts"],"names":[],"mappings":"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"}
@@ -25,9 +25,9 @@ export default class Websocket extends Singleton {
25
25
  static CreateChannel(id: string, name: string, limit?: number): I_WebsocketChannel<Websocket>;
26
26
  setup(): WebSocketHandler<WebsocketEntityData>;
27
27
  private clientMessageReceived;
28
- private handleHeartbeat;
29
28
  private clientConnected;
30
29
  private clientDisconnected;
30
+ private handleHeartbeat;
31
31
  protected createClient(entity: I_WebsocketEntity): I_WebsocketClient;
32
32
  static Heartbeat(ws: ServerWebSocket<WebsocketEntityData>, message: WebsocketMessage): boolean;
33
33
  static Server(): Server;
@@ -16,31 +16,31 @@ class Websocket extends singleton_1.default {
16
16
  this.clientMessageReceived = (ws, message) => {
17
17
  if (Websocket.Heartbeat(ws, message))
18
18
  return;
19
- const setup = this._ws_interface?.setup(this._channels);
19
+ const setup = this._ws_interface?.setup(this._channels, this._clients);
20
20
  if (setup && setup.message)
21
21
  return setup.message(ws, message);
22
22
  ws.send("This is the message from the server: " + message);
23
23
  Websocket.BraodcastAll({ type: "client.message.received", content: message });
24
24
  };
25
- this.handleHeartbeat = (ws, message) => {
26
- if (message === "ping") {
27
- const pong = { type: "pong", content: "pong" };
28
- ws.send(JSON.stringify(pong));
29
- return true;
30
- }
31
- return false;
32
- };
33
25
  this.clientConnected = (ws) => {
26
+ utils_1.Lib.Log("Client connected", ws.data);
27
+ const setup = this._ws_interface?.setup(this._channels, this._clients);
28
+ if (setup && setup.open)
29
+ return setup.open(ws);
34
30
  const global = this._channels.get("global");
35
31
  if (!global)
36
32
  throw new Error("Global channel not found");
33
+ //TODO: handshake
37
34
  const client = Websocket.CreateClient({ id: ws.data.id, ws: ws, name: ws.data.name });
38
35
  this._clients.set(client.id, client);
39
36
  global.addMember(client);
40
- client.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_CONNECTED, content: { client: client.whoami() } });
37
+ client.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_CONNECTED, content: { message: "Welcome to the server", client: client.whoami() } });
41
38
  };
42
- this.clientDisconnected = (ws) => {
43
- utils_1.Lib.Log("WebSocket connection closed");
39
+ this.clientDisconnected = (ws, code, reason) => {
40
+ utils_1.Lib.Log("Client disconnected", ws.data);
41
+ const setup = this._ws_interface?.setup(this._channels, this._clients);
42
+ if (setup && setup.close)
43
+ return setup.close(ws, code, reason);
44
44
  const client = this._clients.get(ws.data.id);
45
45
  if (!client)
46
46
  return;
@@ -49,6 +49,14 @@ class Websocket extends singleton_1.default {
49
49
  });
50
50
  this._clients.delete(ws.data.id);
51
51
  };
52
+ this.handleHeartbeat = (ws, message) => {
53
+ if (message === "ping") {
54
+ const pong = { type: "pong", content: "pong" };
55
+ ws.send(JSON.stringify(pong));
56
+ return true;
57
+ }
58
+ return false;
59
+ };
52
60
  this._ws_interface = options?.ws_interface;
53
61
  this._channels = options?.channels ?? new Map();
54
62
  this._clientClass = options?.clientClass ?? Client_1.default;
@@ -1 +1 @@
1
- {"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,13 @@ export declare enum E_WebsocketMessageType {
4
4
  CLIENT_JOIN_CHANNEL = "client.join.channel",
5
5
  CLIENT_LEAVE_CHANNEL = "client.leave.channel",
6
6
  CLIENT_JOIN_CHANNELS = "client.join.channels",
7
- CLIENT_LEAVE_CHANNELS = "client.leave.channels"
7
+ CLIENT_LEAVE_CHANNELS = "client.leave.channels",
8
+ PING = "ping",
9
+ PONG = "pong",
10
+ MESSAGE = "message"
11
+ }
12
+ export declare enum E_WebsocketMessagePriority {
13
+ LOW = 0,
14
+ MEDIUM = 1,
15
+ HIGH = 2
8
16
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.E_WebsocketMessageType = void 0;
3
+ exports.E_WebsocketMessagePriority = exports.E_WebsocketMessageType = void 0;
4
4
  var E_WebsocketMessageType;
5
5
  (function (E_WebsocketMessageType) {
6
6
  E_WebsocketMessageType["CLIENT_CONNECTED"] = "client.connected";
@@ -9,5 +9,14 @@ var E_WebsocketMessageType;
9
9
  E_WebsocketMessageType["CLIENT_LEAVE_CHANNEL"] = "client.leave.channel";
10
10
  E_WebsocketMessageType["CLIENT_JOIN_CHANNELS"] = "client.join.channels";
11
11
  E_WebsocketMessageType["CLIENT_LEAVE_CHANNELS"] = "client.leave.channels";
12
+ E_WebsocketMessageType["PING"] = "ping";
13
+ E_WebsocketMessageType["PONG"] = "pong";
14
+ E_WebsocketMessageType["MESSAGE"] = "message";
12
15
  })(E_WebsocketMessageType || (exports.E_WebsocketMessageType = E_WebsocketMessageType = {}));
16
+ var E_WebsocketMessagePriority;
17
+ (function (E_WebsocketMessagePriority) {
18
+ E_WebsocketMessagePriority[E_WebsocketMessagePriority["LOW"] = 0] = "LOW";
19
+ E_WebsocketMessagePriority[E_WebsocketMessagePriority["MEDIUM"] = 1] = "MEDIUM";
20
+ E_WebsocketMessagePriority[E_WebsocketMessagePriority["HIGH"] = 2] = "HIGH";
21
+ })(E_WebsocketMessagePriority || (exports.E_WebsocketMessagePriority = E_WebsocketMessagePriority = {}));
13
22
  //# sourceMappingURL=websocket.enums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.enums.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/websocket.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IACjC,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,qEAA2C,CAAA;IAC3C,uEAA6C,CAAA;IAC7C,uEAA6C,CAAA;IAC7C,yEAA+C,CAAA;AAChD,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC"}
1
+ {"version":3,"file":"websocket.enums.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/websocket.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IACjC,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,qEAA2C,CAAA;IAC3C,uEAA6C,CAAA;IAC7C,uEAA6C,CAAA;IAC7C,yEAA+C,CAAA;IAC/C,uCAAa,CAAA;IACb,uCAAa,CAAA;IACb,6CAAmB,CAAA;AACpB,CAAC,EAVW,sBAAsB,sCAAtB,sBAAsB,QAUjC;AAED,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yEAAO,CAAA;IACP,+EAAU,CAAA;IACV,2EAAQ,CAAA;AACT,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC"}
@@ -3,6 +3,7 @@ import Channel from "./Channel";
3
3
  import Websocket from "./Websocket";
4
4
  export type WebsocketMessage = string | Buffer<ArrayBufferLike>;
5
5
  export type WebsocketChannel<T extends I_WebsocketChannel = Channel> = Map<string, T>;
6
+ export type WebsocketClients = Map<string, I_WebsocketClient>;
6
7
  export type WebsocketStructuredMessage<T = any> = {
7
8
  /**
8
9
  * Message type identifier used for client-side routing
@@ -146,5 +147,5 @@ export interface I_WebsocketChannel<T extends Websocket = Websocket> extends I_W
146
147
  canAddMember(): boolean;
147
148
  }
148
149
  export interface I_WebsocketInterface {
149
- setup: (channels: WebsocketChannel) => Partial<WebSocketHandler<WebsocketEntityData>>;
150
+ setup: (channels: WebsocketChannel, clients: WebsocketClients) => Partial<WebSocketHandler<WebsocketEntityData>>;
150
151
  }
@@ -1,2 +1,4 @@
1
1
  export * from './controller';
2
+ export * from './service';
2
3
  export { default as Controller } from './controller';
4
+ export { default as Service } from './service';
@@ -19,8 +19,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  return (mod && mod.__esModule) ? mod : { "default": mod };
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.Controller = void 0;
22
+ exports.Service = exports.Controller = void 0;
23
23
  __exportStar(require("./controller"), exports);
24
+ __exportStar(require("./service"), exports);
24
25
  var controller_1 = require("./controller");
25
26
  Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return __importDefault(controller_1).default; } });
27
+ var service_1 = require("./service");
28
+ Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return __importDefault(service_1).default; } });
26
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,iCAAiC;;;;;;;;;;;;;;;;;;;;AAEjC,+CAA6B;AAC7B,2CAAqD;AAA5C,yHAAA,OAAO,OAAc"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,iCAAiC;;;;;;;;;;;;;;;;;;;;AAEjC,+CAA6B;AAC7B,4CAA0B;AAC1B,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,qCAA+C;AAAtC,mHAAA,OAAO,OAAW"}
@@ -0,0 +1,5 @@
1
+ import Initializable from "../initializable";
2
+ export default abstract class Service extends Initializable {
3
+ validateRequestBody<T>(request: Request, keys: (keyof T)[]): Promise<T>;
4
+ static validateRequestBody<T>(request: Request, keys: (keyof T)[]): Promise<T>;
5
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const errors_1 = require("../errors");
7
+ const initializable_1 = __importDefault(require("../initializable"));
8
+ const utils_1 = require("../utils");
9
+ class Service extends initializable_1.default {
10
+ async validateRequestBody(request, keys) {
11
+ return await Service.validateRequestBody(request, keys);
12
+ }
13
+ static async validateRequestBody(request, keys) {
14
+ try {
15
+ let body;
16
+ try {
17
+ body = await request.json();
18
+ }
19
+ catch (e) {
20
+ body = await request.text();
21
+ const cleanedBody = body
22
+ .replace(/\/\/.*$/gm, "") // Remove comments
23
+ .replace(/\n/g, "") // Remove newlines
24
+ .replace(/\s+/g, " ") // Replace multiple spaces with single space
25
+ .trim(); // Remove leading/trailing whitespace
26
+ body = JSON.parse(cleanedBody);
27
+ }
28
+ if (utils_1.Guards.IsNil(body))
29
+ throw errors_1.ERROR_CODE.REQ_BODY_EMPTY;
30
+ if (!utils_1.Guards.IsType(body, keys)) {
31
+ console.error(`Expected keys: ${keys.join(", ")}`);
32
+ throw errors_1.ERROR_CODE.INVALID_METHOD_INPUT;
33
+ }
34
+ return body;
35
+ }
36
+ catch (e) {
37
+ if (e instanceof Error || e instanceof SyntaxError)
38
+ throw "Could not parse request body: " + e;
39
+ throw e;
40
+ }
41
+ }
42
+ }
43
+ exports.default = Service;
44
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/server/service.ts"],"names":[],"mappings":";;;;;AAAA,sCAAuC;AACvC,qEAA6C;AAC7C,oCAAkC;AAElC,MAA8B,OAAQ,SAAQ,uBAAa;IAC1D,KAAK,CAAC,mBAAmB,CAAI,OAAgB,EAAE,IAAiB;QAC/D,OAAO,MAAM,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAI,OAAgB,EAAE,IAAiB;QACtE,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACJ,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,IAAI;qBACtB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,kBAAkB;qBAC3C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,kBAAkB;qBACrC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,4CAA4C;qBACjE,IAAI,EAAE,CAAC,CAAC,qCAAqC;gBAE/C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,cAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,MAAM,mBAAU,CAAC,cAAc,CAAC;YACxD,IAAI,CAAC,cAAM,CAAC,MAAM,CAAI,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,mBAAU,CAAC,oBAAoB,CAAC;YACvC,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,WAAW;gBAAE,MAAM,gCAAgC,GAAG,CAAC,CAAC;YAC/F,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;CACD;AA/BD,0BA+BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topsyde-utils",
3
- "version": "1.0.90",
3
+ "version": "1.0.92",
4
4
  "description": "A bundle of TypeScript utility classes and functions",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -72,14 +72,14 @@
72
72
  },
73
73
  "homepage": "https://github.com/topsyde/topsyde-utils#readme",
74
74
  "devDependencies": {
75
- "@types/jest": "^29.5.0",
76
- "@types/node": "^18.15.11",
75
+ "@types/jest": "^29.5.14",
76
+ "@types/node": "^18.19.78",
77
77
  "@types/bun": "^1.2.4",
78
- "jest": "^29.5.0",
79
- "prettier": "^2.8.7",
78
+ "jest": "^29.7.0",
79
+ "prettier": "^2.8.8",
80
80
  "rimraf": "^4.4.1",
81
- "ts-jest": "^29.1.0",
82
- "typescript": "^5.0.3"
81
+ "ts-jest": "^29.2.6",
82
+ "typescript": "^5.8.2"
83
83
  },
84
84
  "engines": {
85
85
  "node": ">=14.0.0"