opticore-webapp 1.0.42 → 1.0.44
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.cjs +53 -56
- package/dist/index.d.cts +2 -4
- package/dist/index.d.ts +2 -4
- package/dist/index.js +81 -86
- package/package.json +4 -3
package/dist/index.cjs
CHANGED
|
@@ -30,7 +30,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
|
-
UStopServer: () => UStopServer,
|
|
34
33
|
WebServer: () => WebServerCore,
|
|
35
34
|
envPath: () => envPath
|
|
36
35
|
});
|
|
@@ -197,29 +196,32 @@ var import_opticore_translator2 = require("opticore-translator");
|
|
|
197
196
|
|
|
198
197
|
// src/application/service/logger.service.ts
|
|
199
198
|
var import_opticore_logger = require("opticore-logger");
|
|
200
|
-
var SLogger = () => {
|
|
201
|
-
return new import_opticore_logger.LoggerCore();
|
|
199
|
+
var SLogger = (environnementPath) => {
|
|
200
|
+
return new import_opticore_logger.LoggerCore(loggerConfig(environnementPath));
|
|
202
201
|
};
|
|
203
202
|
|
|
204
203
|
// src/core/config/loaders/translateLanguage.loader.ts
|
|
205
204
|
var import_opticore_http_response = require("opticore-http-response");
|
|
206
205
|
var TranslateWebAppCoreLanguageLoader = class {
|
|
207
|
-
translateLanguageLoader(localLang) {
|
|
206
|
+
translateLanguageLoader(localLang, environnementPath) {
|
|
208
207
|
try {
|
|
209
208
|
const require2 = (0, import_module.createRequire)(importMetaUrl);
|
|
210
209
|
const packagePath = import_path.default.dirname(require2.resolve("opticore-webapp"));
|
|
211
210
|
const translateMsgJsonFilePath = import_path.default.join(packagePath, "utils", "translations");
|
|
212
211
|
import_opticore_translator2.TranslationLoader.loadTranslations(translateMsgJsonFilePath);
|
|
213
212
|
} catch (error) {
|
|
214
|
-
SLogger().error(
|
|
215
|
-
import_opticore_translator2.TranslationLoader.t(error.message, localLang),
|
|
216
|
-
import_opticore_translator2.TranslationLoader.t("readdir", localLang),
|
|
217
|
-
import_opticore_translator2.TranslationLoader.t("ENOENT:NoSuchFileOrDir", localLang),
|
|
218
|
-
error.stack,
|
|
219
|
-
import_opticore_http_response.HttpStatusCode.INTERNAL_SERVER_ERROR
|
|
220
|
-
);
|
|
213
|
+
SLogger(environnementPath).error(this.handleError(error, localLang));
|
|
221
214
|
}
|
|
222
215
|
}
|
|
216
|
+
handleError(error, localLang) {
|
|
217
|
+
return {
|
|
218
|
+
message: import_opticore_translator2.TranslationLoader.t(error.message, localLang),
|
|
219
|
+
title: import_opticore_translator2.TranslationLoader.t("readdir", localLang),
|
|
220
|
+
errorType: import_opticore_translator2.TranslationLoader.t("ENOENT:NoSuchFileOrDir", localLang),
|
|
221
|
+
stackTrace: error.stack,
|
|
222
|
+
httpCodeValue: import_opticore_http_response.HttpStatusCode.INTERNAL_SERVER_ERROR
|
|
223
|
+
};
|
|
224
|
+
}
|
|
223
225
|
};
|
|
224
226
|
|
|
225
227
|
// src/core/helpers/container.utils.ts
|
|
@@ -295,7 +297,7 @@ var CoreService = class {
|
|
|
295
297
|
* and Memory usage system
|
|
296
298
|
*/
|
|
297
299
|
getUsageMemory() {
|
|
298
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
300
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
299
301
|
const memoryData = import_node_process2.default.memoryUsage();
|
|
300
302
|
const data = {
|
|
301
303
|
[import_opticore_translator3.TranslationLoader.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
|
|
@@ -355,7 +357,7 @@ var CoreService = class {
|
|
|
355
357
|
* Return string
|
|
356
358
|
*/
|
|
357
359
|
getServerRunningMode(development, production) {
|
|
358
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
360
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
359
361
|
this.getEnvFileLoading(".env");
|
|
360
362
|
const env = (0, import_opticore_env_access2.getEnvironnementValue)(path2.join(envPath));
|
|
361
363
|
const isDevelopment = env.devEnv === development && env.prodEnv === "";
|
|
@@ -368,19 +370,20 @@ var CoreService = class {
|
|
|
368
370
|
}
|
|
369
371
|
}
|
|
370
372
|
infoServer(nodeVersion, startingTime, host, port) {
|
|
371
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
373
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
372
374
|
const getEnvironnement = (0, import_opticore_env_access2.getEnvironnementValue)(this.environnementPath);
|
|
373
375
|
const msg5 = getEnvironnement.protocolTransfert === "" ? `${import_ansi_colors3.default.underline(`http://${host}:${port}`)}` : `${import_ansi_colors3.default.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
|
|
374
376
|
const messages = [
|
|
375
377
|
import_opticore_translator3.TranslationLoader.t("webServerListening", this.localLanguage),
|
|
376
|
-
import_opticore_translator3.TranslationLoader.t("webServerUsingNodeVersion", this.localLanguage),
|
|
377
|
-
import_opticore_translator3.TranslationLoader.t("startTime", this.localLanguage),
|
|
378
|
+
import_opticore_translator3.TranslationLoader.t("webServerUsingNodeVersion", this.localLanguage, { nodeVersion: this.getVersions().nodeVersion }),
|
|
379
|
+
import_opticore_translator3.TranslationLoader.t("startTime", this.localLanguage, { startTime: this.getProjectInfo().startingTime }),
|
|
378
380
|
this.getServerRunningMode(import_opticore_translator3.TranslationLoader.t("runningModeDev", this.localLanguage), import_opticore_translator3.TranslationLoader.t("runningModeProd", this.localLanguage)),
|
|
379
381
|
msg5
|
|
380
382
|
];
|
|
381
383
|
const maxLength = Math.max(...messages.map((m) => {
|
|
382
384
|
return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
|
|
383
385
|
})) + 4;
|
|
386
|
+
console.log(import_chalk.default.blackBright(`Tailing Web Server log file (${path2.join(path2.basename(import_node_process2.default.cwd()), "logs", "app.log")})`));
|
|
384
387
|
const border = import_chalk.default.bgGreen.white(" ".repeat(maxLength));
|
|
385
388
|
console.log(border);
|
|
386
389
|
messages.forEach((msg) => {
|
|
@@ -389,9 +392,10 @@ var CoreService = class {
|
|
|
389
392
|
console.log(import_chalk.default.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
|
|
390
393
|
});
|
|
391
394
|
console.log(border);
|
|
395
|
+
console.log("\n");
|
|
392
396
|
}
|
|
393
397
|
coreListenerEventLoaderModuleService(kernelModule) {
|
|
394
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
398
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
395
399
|
let router = [];
|
|
396
400
|
let dbCon;
|
|
397
401
|
kernelModule.forEach((module2) => {
|
|
@@ -421,18 +425,30 @@ var CoreService = class {
|
|
|
421
425
|
// src/application/service/serverStartError.service.ts
|
|
422
426
|
var import_opticore_catch_exception_error3 = require("opticore-catch-exception-error");
|
|
423
427
|
var import_opticore_http_response3 = require("opticore-http-response");
|
|
424
|
-
var SServerStartError = (err) => {
|
|
428
|
+
var SServerStartError = (err, environnementPath) => {
|
|
425
429
|
if (err.name) {
|
|
426
430
|
for (const [key, code] of Object.entries(import_opticore_catch_exception_error3.CErrorName)) {
|
|
427
431
|
if (err.name === code) {
|
|
428
|
-
SLogger().error(
|
|
432
|
+
SLogger(environnementPath).error({
|
|
433
|
+
message: err.message,
|
|
434
|
+
title: code,
|
|
435
|
+
errorType: code,
|
|
436
|
+
stackTrace: err.stack,
|
|
437
|
+
httpCodeValue: import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR
|
|
438
|
+
});
|
|
429
439
|
break;
|
|
430
440
|
}
|
|
431
441
|
}
|
|
432
442
|
} else {
|
|
433
443
|
for (const [key, code] of Object.entries(import_opticore_catch_exception_error3.CCodeError)) {
|
|
434
444
|
if (err.code === code) {
|
|
435
|
-
SLogger().error(
|
|
445
|
+
SLogger(environnementPath).error({
|
|
446
|
+
message: err.message,
|
|
447
|
+
title: code,
|
|
448
|
+
errorType: key,
|
|
449
|
+
stackTrace: err.stack,
|
|
450
|
+
httpCodeValue: import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR
|
|
451
|
+
});
|
|
436
452
|
break;
|
|
437
453
|
}
|
|
438
454
|
}
|
|
@@ -444,6 +460,7 @@ var import_opticore_request_call_event = require("opticore-request-call-event");
|
|
|
444
460
|
var import_opticore_inject_dependency = require("opticore-inject-dependency");
|
|
445
461
|
var import_opticore_http_response4 = require("opticore-http-response");
|
|
446
462
|
var import_opticore_translator4 = require("opticore-translator");
|
|
463
|
+
var import_opticore_mysqldb = require("opticore-mysqldb");
|
|
447
464
|
var WebServerCore = class {
|
|
448
465
|
serverUtility;
|
|
449
466
|
expressApp = (0, import_opticore_express2.express)();
|
|
@@ -458,7 +475,7 @@ var WebServerCore = class {
|
|
|
458
475
|
constructor(app, loggerConfig2, localLanguage, environnementPath, corsOriginOptions) {
|
|
459
476
|
containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
|
|
460
477
|
this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
|
|
461
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage);
|
|
478
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage, environnementPath);
|
|
462
479
|
this.stackTraceErrorHandling(localLanguage);
|
|
463
480
|
this.getEnvironnement = (0, import_opticore_env_access3.getEnvironnementValue)(environnementPath);
|
|
464
481
|
this.routerExpressApp = app;
|
|
@@ -481,40 +498,41 @@ var WebServerCore = class {
|
|
|
481
498
|
});
|
|
482
499
|
this.dependenciesRegistered = true;
|
|
483
500
|
}
|
|
484
|
-
onStartServer(routers,
|
|
485
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
486
|
-
|
|
501
|
+
onStartServer(routers, dependenciesProvider, optionalArgumentConnection) {
|
|
502
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
503
|
+
const mySQL = new import_opticore_mysqldb.OptiCoreMySQLDriver(this.getEnvironnement, this.localLanguage);
|
|
504
|
+
if (this.getEnvironnement.appPort === "" && Number(this.getEnvironnement.appPort) === 0) {
|
|
487
505
|
this.serverListenEvent.hostPortUndefined(Number(this.getEnvironnement.appPort));
|
|
488
506
|
} else if (this.getEnvironnement.appHost === "") {
|
|
489
507
|
this.serverListenEvent.hostUndefined(this.getEnvironnement.appHost);
|
|
490
508
|
} else if (Number(this.getEnvironnement.appPort) === 0) {
|
|
491
509
|
this.serverListenEvent.portUndefined();
|
|
492
510
|
} else if (this.localLanguage === "") {
|
|
493
|
-
SLogger().error(
|
|
494
|
-
import_opticore_translator4.TranslationLoader.t("noDefaultLocalLang", this.localLanguage),
|
|
495
|
-
import_opticore_translator4.TranslationLoader.t("noLocalLang", this.localLanguage),
|
|
496
|
-
import_opticore_translator4.TranslationLoader.t("localLangMissing", this.localLanguage),
|
|
497
|
-
void 0,
|
|
498
|
-
import_opticore_http_response4.HttpStatusCode.NOT_FOUND
|
|
499
|
-
);
|
|
511
|
+
SLogger(this.environnementPath).error({
|
|
512
|
+
message: import_opticore_translator4.TranslationLoader.t("noDefaultLocalLang", this.localLanguage),
|
|
513
|
+
title: import_opticore_translator4.TranslationLoader.t("noLocalLang", this.localLanguage),
|
|
514
|
+
errorType: import_opticore_translator4.TranslationLoader.t("localLangMissing", this.localLanguage),
|
|
515
|
+
stackTrace: void 0,
|
|
516
|
+
httpCodeValue: import_opticore_http_response4.HttpStatusCode.NOT_FOUND
|
|
517
|
+
});
|
|
500
518
|
} else {
|
|
501
519
|
return this.expressApp.listen(
|
|
502
520
|
Number(this.getEnvironnement.appPort),
|
|
503
521
|
() => {
|
|
504
522
|
try {
|
|
505
|
-
|
|
523
|
+
mySQL.databaseConnexionChecker(this.getEnvironnement, optionalArgumentConnection);
|
|
506
524
|
new import_opticore_inject_dependency.SContainer(dependenciesProvider, this.localLanguage);
|
|
507
525
|
this.expressApp.use(import_opticore_express2.express.static(path3.join(import_node_process3.default.cwd(), "public/template")));
|
|
508
526
|
this.registerRoutes(routers);
|
|
509
527
|
} catch (err) {
|
|
510
|
-
SServerStartError(err);
|
|
528
|
+
SServerStartError(err, this.environnementPath);
|
|
511
529
|
}
|
|
512
530
|
}
|
|
513
531
|
);
|
|
514
532
|
}
|
|
515
533
|
}
|
|
516
534
|
onListeningOnServerEvent(serverWeb) {
|
|
517
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
535
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
518
536
|
serverWeb.on(import_opticore_catch_exception_error4.CEventNameError.error, (err) => {
|
|
519
537
|
this.serverListenEvent.onEventError(err);
|
|
520
538
|
}).on(import_opticore_catch_exception_error4.CEventNameError.close, () => {
|
|
@@ -526,7 +544,7 @@ var WebServerCore = class {
|
|
|
526
544
|
});
|
|
527
545
|
}
|
|
528
546
|
onRequestOnServerEvent(serverWeb) {
|
|
529
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
547
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
530
548
|
serverWeb.on(import_opticore_catch_exception_error4.CEventNameError.request, (req, res) => {
|
|
531
549
|
(0, import_opticore_request_call_event.requestCallsEvent)(
|
|
532
550
|
req,
|
|
@@ -558,29 +576,8 @@ var WebServerCore = class {
|
|
|
558
576
|
);
|
|
559
577
|
}
|
|
560
578
|
};
|
|
561
|
-
|
|
562
|
-
// src/utils/stopServer.utils.ts
|
|
563
|
-
var import_dotenv = __toESM(require("dotenv"), 1);
|
|
564
|
-
var import_child_process = require("child_process");
|
|
565
|
-
var import_opticore_translator5 = require("opticore-translator");
|
|
566
|
-
var UStopServer = () => {
|
|
567
|
-
import_dotenv.default.config();
|
|
568
|
-
const port = process.env.PORT;
|
|
569
|
-
try {
|
|
570
|
-
const pid = (0, import_child_process.execSync)(`lsof -i :${port} -t`, { encoding: "utf-8" }).trim();
|
|
571
|
-
if (pid) {
|
|
572
|
-
(0, import_child_process.execSync)(`kill ${pid}`);
|
|
573
|
-
SLogger().success("serverPortKill", import_opticore_translator5.TranslationLoader.t("serverPortKill", "en", { port }));
|
|
574
|
-
} else {
|
|
575
|
-
SLogger().warn("pidOnPortNotFound", import_opticore_translator5.TranslationLoader.t("pidOnPortNotFound", "en", { port }));
|
|
576
|
-
}
|
|
577
|
-
} catch (error) {
|
|
578
|
-
SLogger().error("noProcessRunningOnPort", import_opticore_translator5.TranslationLoader.t("noProcessRunningOnPort", "en", { port }));
|
|
579
|
-
}
|
|
580
|
-
};
|
|
581
579
|
// Annotate the CommonJS export names for ESM import in node:
|
|
582
580
|
0 && (module.exports = {
|
|
583
|
-
UStopServer,
|
|
584
581
|
WebServer,
|
|
585
582
|
envPath
|
|
586
583
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -26,7 +26,7 @@ declare class WebServerCore {
|
|
|
26
26
|
private static dependenciesRegistered;
|
|
27
27
|
constructor(app: express.Application, loggerConfig: LoggerCore, localLanguage: string, environnementPath: any, corsOriginOptions?: Partial<CorsOptions>);
|
|
28
28
|
static registerDependencies(dependencies: Map<TDependencyKey, any>): void;
|
|
29
|
-
onStartServer(routers: TFeatureRoutes[],
|
|
29
|
+
onStartServer(routers: TFeatureRoutes[], dependenciesProvider?: TDependency[], optionalArgumentConnection?: string | any): any;
|
|
30
30
|
onListeningOnServerEvent(serverWeb: Server): void;
|
|
31
31
|
onRequestOnServerEvent(serverWeb: Server): void;
|
|
32
32
|
private registerRoutes;
|
|
@@ -36,12 +36,10 @@ declare class WebServerCore {
|
|
|
36
36
|
|
|
37
37
|
declare const envPath: string;
|
|
38
38
|
|
|
39
|
-
declare const UStopServer: () => void;
|
|
40
|
-
|
|
41
39
|
type TFeatureRouteDefinition = {
|
|
42
40
|
featureRoute: IRouteDefinition[];
|
|
43
41
|
};
|
|
44
42
|
|
|
45
43
|
type KernelModuleType = [TFeatureRouteDefinition[], () => void];
|
|
46
44
|
|
|
47
|
-
export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes,
|
|
45
|
+
export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes, WebServerCore as WebServer, envPath };
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ declare class WebServerCore {
|
|
|
26
26
|
private static dependenciesRegistered;
|
|
27
27
|
constructor(app: express.Application, loggerConfig: LoggerCore, localLanguage: string, environnementPath: any, corsOriginOptions?: Partial<CorsOptions>);
|
|
28
28
|
static registerDependencies(dependencies: Map<TDependencyKey, any>): void;
|
|
29
|
-
onStartServer(routers: TFeatureRoutes[],
|
|
29
|
+
onStartServer(routers: TFeatureRoutes[], dependenciesProvider?: TDependency[], optionalArgumentConnection?: string | any): any;
|
|
30
30
|
onListeningOnServerEvent(serverWeb: Server): void;
|
|
31
31
|
onRequestOnServerEvent(serverWeb: Server): void;
|
|
32
32
|
private registerRoutes;
|
|
@@ -36,12 +36,10 @@ declare class WebServerCore {
|
|
|
36
36
|
|
|
37
37
|
declare const envPath: string;
|
|
38
38
|
|
|
39
|
-
declare const UStopServer: () => void;
|
|
40
|
-
|
|
41
39
|
type TFeatureRouteDefinition = {
|
|
42
40
|
featureRoute: IRouteDefinition[];
|
|
43
41
|
};
|
|
44
42
|
|
|
45
43
|
type KernelModuleType = [TFeatureRouteDefinition[], () => void];
|
|
46
44
|
|
|
47
|
-
export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes,
|
|
45
|
+
export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes, WebServerCore as WebServer, envPath };
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
// src/core/webServer.core.ts
|
|
2
2
|
import * as path3 from "path";
|
|
3
|
-
import
|
|
3
|
+
import process4 from "node:process";
|
|
4
4
|
import corsOrigin from "cors";
|
|
5
|
-
import {
|
|
6
|
-
CEventNameError as eventName2,
|
|
7
|
-
ServerListenEventError as ServerListenEventError2
|
|
8
|
-
} from "opticore-catch-exception-error";
|
|
5
|
+
import { CEventNameError as eventName2, ServerListenEventError as ServerListenEventError2 } from "opticore-catch-exception-error";
|
|
9
6
|
import { express as express2 } from "opticore-express";
|
|
10
7
|
import { getEnvironnementValue as getEnvironnementValue3 } from "opticore-env-access";
|
|
11
8
|
|
|
12
9
|
// src/core/handlers/eventProcess.handler.ts
|
|
13
|
-
import
|
|
10
|
+
import process from "node:process";
|
|
14
11
|
import EventEmitter from "node:events";
|
|
15
12
|
import { express } from "opticore-express";
|
|
16
13
|
import {
|
|
@@ -25,42 +22,42 @@ function eventProcessHandler(localeLanguage) {
|
|
|
25
22
|
errorEmitter.on(eventName.error, (error) => {
|
|
26
23
|
serverListenEvent.listenerError(error);
|
|
27
24
|
});
|
|
28
|
-
|
|
25
|
+
process.on(event.beforeExit, (code) => {
|
|
29
26
|
setTimeout(() => {
|
|
30
27
|
serverListenEvent.processBeforeExit(code);
|
|
31
28
|
}, 100);
|
|
32
29
|
});
|
|
33
|
-
|
|
30
|
+
process.on(event.disconnect, () => {
|
|
34
31
|
serverListenEvent.processDisconnected();
|
|
35
32
|
});
|
|
36
|
-
|
|
33
|
+
process.on(event.exit, (code) => {
|
|
37
34
|
serverListenEvent.exited(code);
|
|
38
35
|
});
|
|
39
|
-
|
|
36
|
+
process.on(event.rejectionHandled, (promise) => {
|
|
40
37
|
serverListenEvent.promiseRejectionHandled(promise);
|
|
41
38
|
});
|
|
42
|
-
|
|
39
|
+
process.on(event.uncaughtException, (error) => {
|
|
43
40
|
serverListenEvent.uncaughtException(error);
|
|
44
41
|
});
|
|
45
|
-
|
|
42
|
+
process.on(event.uncaughtExceptionMonitor, (error) => {
|
|
46
43
|
serverListenEvent.uncaughtExceptionMonitor(error);
|
|
47
44
|
});
|
|
48
|
-
|
|
45
|
+
process.on(event.unhandledRejection, (reason, promise) => {
|
|
49
46
|
serverListenEvent.unhandledRejection(reason, promise);
|
|
50
47
|
});
|
|
51
|
-
|
|
48
|
+
process.on(event.warning, (warning) => {
|
|
52
49
|
serverListenEvent.warning(warning);
|
|
53
50
|
});
|
|
54
|
-
|
|
51
|
+
process.on(event.message, (message) => {
|
|
55
52
|
serverListenEvent.message(message);
|
|
56
53
|
});
|
|
57
|
-
|
|
54
|
+
process.on(event.multipleResolves, (type, promise, reason) => {
|
|
58
55
|
serverListenEvent.multipleResolves(type, promise, reason);
|
|
59
56
|
});
|
|
60
|
-
|
|
57
|
+
process.on(event.sigint, () => {
|
|
61
58
|
serverListenEvent.processInterrupted();
|
|
62
59
|
});
|
|
63
|
-
|
|
60
|
+
process.on(event.sigterm, (signal) => {
|
|
64
61
|
serverListenEvent.sigtermSignalReceived(signal);
|
|
65
62
|
});
|
|
66
63
|
app.use((err, req, res, next) => {
|
|
@@ -69,7 +66,7 @@ function eventProcessHandler(localeLanguage) {
|
|
|
69
66
|
}
|
|
70
67
|
|
|
71
68
|
// src/application/service/core.service.ts
|
|
72
|
-
import
|
|
69
|
+
import process3 from "node:process";
|
|
73
70
|
import chalk from "chalk";
|
|
74
71
|
import * as path2 from "path";
|
|
75
72
|
import * as fs from "fs";
|
|
@@ -162,29 +159,32 @@ import { TranslationLoader as TranslationLoader2 } from "opticore-translator";
|
|
|
162
159
|
|
|
163
160
|
// src/application/service/logger.service.ts
|
|
164
161
|
import { LoggerCore } from "opticore-logger";
|
|
165
|
-
var SLogger = () => {
|
|
166
|
-
return new LoggerCore();
|
|
162
|
+
var SLogger = (environnementPath) => {
|
|
163
|
+
return new LoggerCore(loggerConfig(environnementPath));
|
|
167
164
|
};
|
|
168
165
|
|
|
169
166
|
// src/core/config/loaders/translateLanguage.loader.ts
|
|
170
167
|
import { HttpStatusCode } from "opticore-http-response";
|
|
171
168
|
var TranslateWebAppCoreLanguageLoader = class {
|
|
172
|
-
translateLanguageLoader(localLang) {
|
|
169
|
+
translateLanguageLoader(localLang, environnementPath) {
|
|
173
170
|
try {
|
|
174
171
|
const require2 = createRequire(import.meta.url);
|
|
175
172
|
const packagePath = path.dirname(require2.resolve("opticore-webapp"));
|
|
176
173
|
const translateMsgJsonFilePath = path.join(packagePath, "utils", "translations");
|
|
177
174
|
TranslationLoader2.loadTranslations(translateMsgJsonFilePath);
|
|
178
175
|
} catch (error) {
|
|
179
|
-
SLogger().error(
|
|
180
|
-
TranslationLoader2.t(error.message, localLang),
|
|
181
|
-
TranslationLoader2.t("readdir", localLang),
|
|
182
|
-
TranslationLoader2.t("ENOENT:NoSuchFileOrDir", localLang),
|
|
183
|
-
error.stack,
|
|
184
|
-
HttpStatusCode.INTERNAL_SERVER_ERROR
|
|
185
|
-
);
|
|
176
|
+
SLogger(environnementPath).error(this.handleError(error, localLang));
|
|
186
177
|
}
|
|
187
178
|
}
|
|
179
|
+
handleError(error, localLang) {
|
|
180
|
+
return {
|
|
181
|
+
message: TranslationLoader2.t(error.message, localLang),
|
|
182
|
+
title: TranslationLoader2.t("readdir", localLang),
|
|
183
|
+
errorType: TranslationLoader2.t("ENOENT:NoSuchFileOrDir", localLang),
|
|
184
|
+
stackTrace: error.stack,
|
|
185
|
+
httpCodeValue: HttpStatusCode.INTERNAL_SERVER_ERROR
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
188
|
};
|
|
189
189
|
|
|
190
190
|
// src/core/helpers/container.utils.ts
|
|
@@ -210,8 +210,8 @@ function Inject(key) {
|
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
// src/utils/envPath.utils.ts
|
|
213
|
-
import
|
|
214
|
-
var envPath =
|
|
213
|
+
import process2 from "process";
|
|
214
|
+
var envPath = process2.cwd() + "/config/env/.env";
|
|
215
215
|
|
|
216
216
|
// src/application/service/core.service.ts
|
|
217
217
|
var CoreService = class {
|
|
@@ -240,7 +240,7 @@ var CoreService = class {
|
|
|
240
240
|
* Returns an Object containing a node version, openssl, and v0
|
|
241
241
|
*/
|
|
242
242
|
getVersions() {
|
|
243
|
-
const { node, openssl, v8 } =
|
|
243
|
+
const { node, openssl, v8 } = process3.versions;
|
|
244
244
|
const data = {
|
|
245
245
|
"node version": node,
|
|
246
246
|
"openssl": openssl,
|
|
@@ -260,15 +260,15 @@ var CoreService = class {
|
|
|
260
260
|
* and Memory usage system
|
|
261
261
|
*/
|
|
262
262
|
getUsageMemory() {
|
|
263
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
264
|
-
const memoryData =
|
|
263
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
264
|
+
const memoryData = process3.memoryUsage();
|
|
265
265
|
const data = {
|
|
266
266
|
[TranslationLoader3.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
|
|
267
267
|
[TranslationLoader3.t("sizeAllocatedHeap", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapTotal),
|
|
268
268
|
[TranslationLoader3.t("memoryUsedExecution", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapUsed),
|
|
269
269
|
[TranslationLoader3.t("externalMemory", this.localLanguage)]: this.formatMemoryUsage(memoryData.external),
|
|
270
|
-
[TranslationLoader3.t("memoryUsageUser", this.localLanguage)]: this.formatMemoryUsage(
|
|
271
|
-
[TranslationLoader3.t("memoryUsageSystem", this.localLanguage)]: this.formatMemoryUsage(
|
|
270
|
+
[TranslationLoader3.t("memoryUsageUser", this.localLanguage)]: this.formatMemoryUsage(process3.cpuUsage().user),
|
|
271
|
+
[TranslationLoader3.t("memoryUsageSystem", this.localLanguage)]: this.formatMemoryUsage(process3.cpuUsage().system)
|
|
272
272
|
};
|
|
273
273
|
return {
|
|
274
274
|
"rss": data[TranslationLoader3.t("totalMemoryAllocated", this.localLanguage)],
|
|
@@ -283,11 +283,11 @@ var CoreService = class {
|
|
|
283
283
|
* Return an Object containing a project path and running server time
|
|
284
284
|
*/
|
|
285
285
|
getProjectInfo() {
|
|
286
|
-
const startTime =
|
|
287
|
-
const endTime =
|
|
286
|
+
const startTime = process3.hrtime();
|
|
287
|
+
const endTime = process3.hrtime(startTime);
|
|
288
288
|
const executionTime = (endTime[0] * 1e9 + endTime[1]) / 1e6;
|
|
289
289
|
return {
|
|
290
|
-
"projectPath": path2.join(
|
|
290
|
+
"projectPath": path2.join(process3.cwd()),
|
|
291
291
|
"startingTime": `${executionTime.toFixed(5)} ms`
|
|
292
292
|
};
|
|
293
293
|
}
|
|
@@ -299,7 +299,7 @@ var CoreService = class {
|
|
|
299
299
|
* Return void
|
|
300
300
|
*/
|
|
301
301
|
getEnvFileLoading(filePath) {
|
|
302
|
-
const fullPath = path2.resolve(
|
|
302
|
+
const fullPath = path2.resolve(process3.cwd(), filePath);
|
|
303
303
|
if (fs.existsSync(fullPath)) {
|
|
304
304
|
const env = fs.readFileSync(fullPath, "utf-8");
|
|
305
305
|
const lines = env.split("\n");
|
|
@@ -307,7 +307,7 @@ var CoreService = class {
|
|
|
307
307
|
const match = line.match(/^([^#=]+)=([^#]+)$/);
|
|
308
308
|
if (match) {
|
|
309
309
|
const key = match[1].trim();
|
|
310
|
-
|
|
310
|
+
process3.env[key] = match[2].trim();
|
|
311
311
|
}
|
|
312
312
|
});
|
|
313
313
|
}
|
|
@@ -320,7 +320,7 @@ var CoreService = class {
|
|
|
320
320
|
* Return string
|
|
321
321
|
*/
|
|
322
322
|
getServerRunningMode(development, production) {
|
|
323
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
323
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
324
324
|
this.getEnvFileLoading(".env");
|
|
325
325
|
const env = getEnvironnementValue2(path2.join(envPath));
|
|
326
326
|
const isDevelopment = env.devEnv === development && env.prodEnv === "";
|
|
@@ -333,19 +333,20 @@ var CoreService = class {
|
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
infoServer(nodeVersion, startingTime, host, port) {
|
|
336
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
336
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
337
337
|
const getEnvironnement = getEnvironnementValue2(this.environnementPath);
|
|
338
338
|
const msg5 = getEnvironnement.protocolTransfert === "" ? `${colors3.underline(`http://${host}:${port}`)}` : `${colors3.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
|
|
339
339
|
const messages = [
|
|
340
340
|
TranslationLoader3.t("webServerListening", this.localLanguage),
|
|
341
|
-
TranslationLoader3.t("webServerUsingNodeVersion", this.localLanguage),
|
|
342
|
-
TranslationLoader3.t("startTime", this.localLanguage),
|
|
341
|
+
TranslationLoader3.t("webServerUsingNodeVersion", this.localLanguage, { nodeVersion: this.getVersions().nodeVersion }),
|
|
342
|
+
TranslationLoader3.t("startTime", this.localLanguage, { startTime: this.getProjectInfo().startingTime }),
|
|
343
343
|
this.getServerRunningMode(TranslationLoader3.t("runningModeDev", this.localLanguage), TranslationLoader3.t("runningModeProd", this.localLanguage)),
|
|
344
344
|
msg5
|
|
345
345
|
];
|
|
346
346
|
const maxLength = Math.max(...messages.map((m) => {
|
|
347
347
|
return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
|
|
348
348
|
})) + 4;
|
|
349
|
+
console.log(chalk.blackBright(`Tailing Web Server log file (${path2.join(path2.basename(process3.cwd()), "logs", "app.log")})`));
|
|
349
350
|
const border = chalk.bgGreen.white(" ".repeat(maxLength));
|
|
350
351
|
console.log(border);
|
|
351
352
|
messages.forEach((msg) => {
|
|
@@ -354,9 +355,10 @@ var CoreService = class {
|
|
|
354
355
|
console.log(chalk.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
|
|
355
356
|
});
|
|
356
357
|
console.log(border);
|
|
358
|
+
console.log("\n");
|
|
357
359
|
}
|
|
358
360
|
coreListenerEventLoaderModuleService(kernelModule) {
|
|
359
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
361
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
360
362
|
let router = [];
|
|
361
363
|
let dbCon;
|
|
362
364
|
kernelModule.forEach((module) => {
|
|
@@ -389,18 +391,30 @@ import {
|
|
|
389
391
|
CErrorName
|
|
390
392
|
} from "opticore-catch-exception-error";
|
|
391
393
|
import { HttpStatusCode as HttpStatusCode2 } from "opticore-http-response";
|
|
392
|
-
var SServerStartError = (err) => {
|
|
394
|
+
var SServerStartError = (err, environnementPath) => {
|
|
393
395
|
if (err.name) {
|
|
394
396
|
for (const [key, code] of Object.entries(CErrorName)) {
|
|
395
397
|
if (err.name === code) {
|
|
396
|
-
SLogger().error(
|
|
398
|
+
SLogger(environnementPath).error({
|
|
399
|
+
message: err.message,
|
|
400
|
+
title: code,
|
|
401
|
+
errorType: code,
|
|
402
|
+
stackTrace: err.stack,
|
|
403
|
+
httpCodeValue: HttpStatusCode2.INTERNAL_SERVER_ERROR
|
|
404
|
+
});
|
|
397
405
|
break;
|
|
398
406
|
}
|
|
399
407
|
}
|
|
400
408
|
} else {
|
|
401
409
|
for (const [key, code] of Object.entries(CCodeError)) {
|
|
402
410
|
if (err.code === code) {
|
|
403
|
-
SLogger().error(
|
|
411
|
+
SLogger(environnementPath).error({
|
|
412
|
+
message: err.message,
|
|
413
|
+
title: code,
|
|
414
|
+
errorType: key,
|
|
415
|
+
stackTrace: err.stack,
|
|
416
|
+
httpCodeValue: HttpStatusCode2.INTERNAL_SERVER_ERROR
|
|
417
|
+
});
|
|
404
418
|
break;
|
|
405
419
|
}
|
|
406
420
|
}
|
|
@@ -412,6 +426,7 @@ import { requestCallsEvent } from "opticore-request-call-event";
|
|
|
412
426
|
import { SContainer } from "opticore-inject-dependency";
|
|
413
427
|
import { HttpStatusCode as HttpStatusCode3 } from "opticore-http-response";
|
|
414
428
|
import { TranslationLoader as TranslationLoader4 } from "opticore-translator";
|
|
429
|
+
import { OptiCoreMySQLDriver } from "opticore-mysqldb";
|
|
415
430
|
var WebServerCore = class {
|
|
416
431
|
serverUtility;
|
|
417
432
|
expressApp = express2();
|
|
@@ -426,7 +441,7 @@ var WebServerCore = class {
|
|
|
426
441
|
constructor(app, loggerConfig2, localLanguage, environnementPath, corsOriginOptions) {
|
|
427
442
|
containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
|
|
428
443
|
this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
|
|
429
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage);
|
|
444
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage, environnementPath);
|
|
430
445
|
this.stackTraceErrorHandling(localLanguage);
|
|
431
446
|
this.getEnvironnement = getEnvironnementValue3(environnementPath);
|
|
432
447
|
this.routerExpressApp = app;
|
|
@@ -449,40 +464,41 @@ var WebServerCore = class {
|
|
|
449
464
|
});
|
|
450
465
|
this.dependenciesRegistered = true;
|
|
451
466
|
}
|
|
452
|
-
onStartServer(routers,
|
|
453
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
454
|
-
|
|
467
|
+
onStartServer(routers, dependenciesProvider, optionalArgumentConnection) {
|
|
468
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
469
|
+
const mySQL = new OptiCoreMySQLDriver(this.getEnvironnement, this.localLanguage);
|
|
470
|
+
if (this.getEnvironnement.appPort === "" && Number(this.getEnvironnement.appPort) === 0) {
|
|
455
471
|
this.serverListenEvent.hostPortUndefined(Number(this.getEnvironnement.appPort));
|
|
456
472
|
} else if (this.getEnvironnement.appHost === "") {
|
|
457
473
|
this.serverListenEvent.hostUndefined(this.getEnvironnement.appHost);
|
|
458
474
|
} else if (Number(this.getEnvironnement.appPort) === 0) {
|
|
459
475
|
this.serverListenEvent.portUndefined();
|
|
460
476
|
} else if (this.localLanguage === "") {
|
|
461
|
-
SLogger().error(
|
|
462
|
-
TranslationLoader4.t("noDefaultLocalLang", this.localLanguage),
|
|
463
|
-
TranslationLoader4.t("noLocalLang", this.localLanguage),
|
|
464
|
-
TranslationLoader4.t("localLangMissing", this.localLanguage),
|
|
465
|
-
void 0,
|
|
466
|
-
HttpStatusCode3.NOT_FOUND
|
|
467
|
-
);
|
|
477
|
+
SLogger(this.environnementPath).error({
|
|
478
|
+
message: TranslationLoader4.t("noDefaultLocalLang", this.localLanguage),
|
|
479
|
+
title: TranslationLoader4.t("noLocalLang", this.localLanguage),
|
|
480
|
+
errorType: TranslationLoader4.t("localLangMissing", this.localLanguage),
|
|
481
|
+
stackTrace: void 0,
|
|
482
|
+
httpCodeValue: HttpStatusCode3.NOT_FOUND
|
|
483
|
+
});
|
|
468
484
|
} else {
|
|
469
485
|
return this.expressApp.listen(
|
|
470
486
|
Number(this.getEnvironnement.appPort),
|
|
471
487
|
() => {
|
|
472
488
|
try {
|
|
473
|
-
|
|
489
|
+
mySQL.databaseConnexionChecker(this.getEnvironnement, optionalArgumentConnection);
|
|
474
490
|
new SContainer(dependenciesProvider, this.localLanguage);
|
|
475
|
-
this.expressApp.use(express2.static(path3.join(
|
|
491
|
+
this.expressApp.use(express2.static(path3.join(process4.cwd(), "public/template")));
|
|
476
492
|
this.registerRoutes(routers);
|
|
477
493
|
} catch (err) {
|
|
478
|
-
SServerStartError(err);
|
|
494
|
+
SServerStartError(err, this.environnementPath);
|
|
479
495
|
}
|
|
480
496
|
}
|
|
481
497
|
);
|
|
482
498
|
}
|
|
483
499
|
}
|
|
484
500
|
onListeningOnServerEvent(serverWeb) {
|
|
485
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
501
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
486
502
|
serverWeb.on(eventName2.error, (err) => {
|
|
487
503
|
this.serverListenEvent.onEventError(err);
|
|
488
504
|
}).on(eventName2.close, () => {
|
|
@@ -494,7 +510,7 @@ var WebServerCore = class {
|
|
|
494
510
|
});
|
|
495
511
|
}
|
|
496
512
|
onRequestOnServerEvent(serverWeb) {
|
|
497
|
-
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
|
|
513
|
+
this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
|
|
498
514
|
serverWeb.on(eventName2.request, (req, res) => {
|
|
499
515
|
requestCallsEvent(
|
|
500
516
|
req,
|
|
@@ -526,28 +542,7 @@ var WebServerCore = class {
|
|
|
526
542
|
);
|
|
527
543
|
}
|
|
528
544
|
};
|
|
529
|
-
|
|
530
|
-
// src/utils/stopServer.utils.ts
|
|
531
|
-
import dotenv from "dotenv";
|
|
532
|
-
import { execSync } from "child_process";
|
|
533
|
-
import { TranslationLoader as TranslationLoader5 } from "opticore-translator";
|
|
534
|
-
var UStopServer = () => {
|
|
535
|
-
dotenv.config();
|
|
536
|
-
const port = process.env.PORT;
|
|
537
|
-
try {
|
|
538
|
-
const pid = execSync(`lsof -i :${port} -t`, { encoding: "utf-8" }).trim();
|
|
539
|
-
if (pid) {
|
|
540
|
-
execSync(`kill ${pid}`);
|
|
541
|
-
SLogger().success("serverPortKill", TranslationLoader5.t("serverPortKill", "en", { port }));
|
|
542
|
-
} else {
|
|
543
|
-
SLogger().warn("pidOnPortNotFound", TranslationLoader5.t("pidOnPortNotFound", "en", { port }));
|
|
544
|
-
}
|
|
545
|
-
} catch (error) {
|
|
546
|
-
SLogger().error("noProcessRunningOnPort", TranslationLoader5.t("noProcessRunningOnPort", "en", { port }));
|
|
547
|
-
}
|
|
548
|
-
};
|
|
549
545
|
export {
|
|
550
|
-
UStopServer,
|
|
551
546
|
WebServerCore as WebServer,
|
|
552
547
|
envPath
|
|
553
548
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opticore-webapp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.44",
|
|
4
4
|
"description": "wep server",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -33,8 +33,9 @@
|
|
|
33
33
|
"opticore-env-access": "^1.0.6",
|
|
34
34
|
"opticore-express": "^1.0.3",
|
|
35
35
|
"opticore-http-response": "^1.0.3",
|
|
36
|
-
"opticore-inject-dependency": "^1.0.
|
|
37
|
-
"opticore-logger": "^1.0.
|
|
36
|
+
"opticore-inject-dependency": "^1.0.7",
|
|
37
|
+
"opticore-logger": "^1.0.16",
|
|
38
|
+
"opticore-mysqldb": "^1.0.22",
|
|
38
39
|
"opticore-request-call-event": "^1.0.2",
|
|
39
40
|
"opticore-router": "^1.0.11",
|
|
40
41
|
"opticore-translator": "^1.0.10",
|