@dnax/core 0.20.2 → 0.21.0

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/app/index.ts CHANGED
@@ -25,6 +25,7 @@ async function runApp(config?: configRunApp, clb?: Function) {
25
25
  await loadCfg(); // Load Config
26
26
 
27
27
  const PORT = Cfg.server?.port || process.env?.PORT || 4000;
28
+ const CLUSTER_MODE = Cfg?.clusterMode ?? false;
28
29
  /* const PORT_SOCKET = Cfg.server?.socket?.port || 9000;
29
30
 
30
31
  // available port Socket
@@ -37,81 +38,90 @@ async function runApp(config?: configRunApp, clb?: Function) {
37
38
  }); */
38
39
 
39
40
  // available port Server
40
- await findPort.isAvailable(PORT).then(async (available: boolean) => {
41
- // Start App server
42
- if (available) {
43
- // Load all ressouce
44
- await init();
45
- const HonoApp = HonoInstance();
46
- //await loadSocket(HonoApp);
47
- //BeforeStart
48
- if (config?.beforeStart) {
49
- for (const fn of config?.beforeStart) {
50
- await fn();
51
- }
41
+ await findPort
42
+ .isAvailable(PORT)
43
+ .then(async (available: boolean) => {
44
+ // Start App server
45
+ if (!available && !Cfg?.clusterMode) {
46
+ console.error(`⚠️ Port ${PORT} is not available`);
47
+ console.log("");
48
+ process.exit();
52
49
  }
53
50
 
54
- var server = Bun.serve({
55
- port: PORT,
56
- fetch: (req, server) => {
57
- if (server.upgrade(req)) {
58
- // handle authentication
59
- return;
51
+ if (available) {
52
+ // Load all ressouce
53
+ await init();
54
+ const HonoApp = HonoInstance();
55
+ //await loadSocket(HonoApp);
56
+ //BeforeStart
57
+ if (config?.beforeStart) {
58
+ for (const fn of config?.beforeStart) {
59
+ await fn();
60
60
  }
61
+ }
61
62
 
62
- return HonoApp.fetch(req, server);
63
- },
64
- maxRequestBodySize: 1024 * 1024 * 900,
65
- websocket: webSocketServer(server),
66
- });
63
+ var server: any = Bun.serve({
64
+ port: PORT,
65
+ reusePort: CLUSTER_MODE,
66
+ fetch: (req, server) => {
67
+ if (server.upgrade(req)) {
68
+ // handle authentication
69
+ return;
70
+ }
67
71
 
68
- console.log();
69
- let info = "";
70
- info += "SERVER :".gray.italic.underline;
71
- info += `\n`;
72
- info += `\n`;
73
- info +=
74
- `Env: ${
75
- process.env.NODE_ENV === "production"
76
- ? "production"
77
- : process.env?.NODE_ENV || "development"
78
- }`.italic.blue.green + "\n";
79
- info += `Server: http://localhost:${PORT}\n`.italic.blue;
80
- info += `\n`;
81
- info += "TENANTS :".gray.italic.underline;
82
- info += `\n`;
83
- Cfg.tenants?.map((t: any) => {
84
- info += `\n${t?.name?.blue || "_"} : ${t?.id?.green}`.italic;
85
- });
86
- info += `\n`;
72
+ return HonoApp.fetch(req, server);
73
+ },
74
+ maxRequestBodySize: 1024 * 1024 * 900,
75
+ websocket: webSocketServer(server),
76
+ });
87
77
 
88
- if (clb) clb();
78
+ console.log();
79
+ let info = "";
80
+ info += "SERVER :".gray.italic.underline;
81
+ info += `\n`;
82
+ info += `\n`;
83
+ info +=
84
+ `Env: ${
85
+ process.env.NODE_ENV === "production"
86
+ ? "production"
87
+ : process.env?.NODE_ENV || "development"
88
+ }`.italic.blue.green + "\n";
89
+ info += `Server: http://localhost:${PORT}\n`.italic.blue;
90
+ info += `\n`;
91
+ info += "TENANTS :".gray.italic.underline;
92
+ info += `\n`;
93
+ Cfg.tenants?.map((t: any) => {
94
+ info += `\n${t?.name?.blue || "_"} : ${t?.id?.green}`.italic;
95
+ });
96
+ info += `\n`;
89
97
 
90
- console.log(
91
- boxen(info, {
92
- borderStyle: "round",
93
- title: `@dnax/server ${pkg.version}`.italic,
94
- padding: 1,
95
- dimBorder: true,
96
- titleAlignment: "center",
97
- //float: "center",
98
- //margin: 1,
99
- borderColor: "gray",
100
- })
101
- );
98
+ if (clb) clb();
102
99
 
103
- //AfterStart
104
- if (config?.afterStart) {
105
- for (const fn of config?.afterStart) {
106
- await fn();
100
+ console.log(
101
+ boxen(info, {
102
+ borderStyle: "round",
103
+ title: `@dnax/server ${pkg.version}`.italic,
104
+ padding: 1,
105
+ dimBorder: true,
106
+ titleAlignment: "center",
107
+ //float: "center",
108
+ //margin: 1,
109
+ borderColor: "gray",
110
+ })
111
+ );
112
+
113
+ //AfterStart
114
+ if (config?.afterStart) {
115
+ for (const fn of config?.afterStart) {
116
+ await fn();
117
+ }
107
118
  }
108
119
  }
109
- } else {
110
- console.error(`⚠️ Port ${PORT} is not available`);
111
- console.log("");
112
- process.exit();
113
- }
114
- });
120
+ })
121
+ .catch((err: any) => {
122
+ console.error("Warning", err?.message);
123
+ process.exit(1);
124
+ });
115
125
  }
116
126
 
117
127
  //process.on("exit", async () => {});
package/config/index.ts CHANGED
@@ -23,6 +23,8 @@ const Cfg: Config = {
23
23
  };
24
24
 
25
25
  function setCfg(config: Config) {
26
+ if (!config?.clusterMode) Cfg.clusterMode = true;
27
+ Cfg.clusterMode = config?.clusterMode ?? false;
26
28
  Cfg.server = config.server;
27
29
  Cfg.tenants = config?.tenants;
28
30
  Cfg.email = config?.email;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnax/core",
3
- "version": "0.20.2",
3
+ "version": "0.21.0",
4
4
  "module": "index.ts",
5
5
  "type": "module",
6
6
  "bin": {
package/types/index.ts CHANGED
@@ -377,7 +377,7 @@ export type Config = {
377
377
  driver: "mistral" | "openai" | "gemini";
378
378
  key: string;
379
379
  };
380
-
380
+ clusterMode?: boolean;
381
381
  server: {
382
382
  id?: string;
383
383
  logger?: Boolean | loggerFunction;