namirasoft-node 1.1.1 → 1.1.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/dist/BaseApplication.d.ts +6 -6
- package/dist/BaseApplication.js +105 -92
- package/dist/BaseApplication.js.map +1 -1
- package/dist/BaseController.d.ts +1 -1
- package/dist/BaseController.js +2 -1
- package/dist/BaseController.js.map +1 -1
- package/dist/BaseDatabase.d.ts +2 -2
- package/package.json +3 -5
- package/src/BaseApplication.ts +14 -13
- package/src/BaseController.ts +3 -2
- package/src/BaseDatabase.ts +2 -2
|
@@ -22,11 +22,11 @@ export declare abstract class BaseApplication<D extends BaseDatabase> {
|
|
|
22
22
|
setLinkLoader(linkLoader: () => Promise<void>): void;
|
|
23
23
|
addLink(link: BaseApplicationLink): void;
|
|
24
24
|
addSwaggerLink(): void;
|
|
25
|
-
start(): void
|
|
26
|
-
protected startCrashHandler(): void
|
|
27
|
-
protected startDatabase(): void
|
|
28
|
-
protected startServer(): void
|
|
29
|
-
protected startSwagger(): void
|
|
30
|
-
protected startHomePage(): void
|
|
25
|
+
start(): Promise<void>;
|
|
26
|
+
protected startCrashHandler(): Promise<void>;
|
|
27
|
+
protected startDatabase(): Promise<void>;
|
|
28
|
+
protected startServer(): Promise<void>;
|
|
29
|
+
protected startSwagger(): Promise<void>;
|
|
30
|
+
protected startHomePage(): Promise<void>;
|
|
31
31
|
abstract onStart(): Promise<void>;
|
|
32
32
|
}
|
package/dist/BaseApplication.js
CHANGED
|
@@ -50,112 +50,125 @@ class BaseApplication {
|
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
start() {
|
|
53
|
-
this
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
yield this.startCrashHandler();
|
|
55
|
+
yield this.startDatabase();
|
|
56
|
+
yield this.startServer();
|
|
57
|
+
yield this.startSwagger();
|
|
58
|
+
yield this.startHomePage();
|
|
59
|
+
yield this.onStart();
|
|
60
|
+
});
|
|
59
61
|
}
|
|
60
62
|
startCrashHandler() {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
process.on('unhandledRejection', (reason) => {
|
|
65
|
+
if (reason instanceof Error)
|
|
66
|
+
this.logger.onCatchCritical(reason);
|
|
67
|
+
else
|
|
68
|
+
this.logger.critical(reason + "");
|
|
69
|
+
});
|
|
70
|
+
process.on('uncaughtException', (error) => {
|
|
71
|
+
this.logger.onCatchFatal(error);
|
|
72
|
+
});
|
|
69
73
|
});
|
|
70
74
|
}
|
|
71
75
|
startDatabase() {
|
|
72
|
-
this
|
|
73
|
-
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
this.database = this.getDatabase();
|
|
78
|
+
this.database.init();
|
|
79
|
+
yield this.database.sync(false);
|
|
80
|
+
});
|
|
74
81
|
}
|
|
75
82
|
startServer() {
|
|
76
|
-
this
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
this.app = (0, express_1.default)();
|
|
85
|
+
this.app.use((req, res, next) => {
|
|
86
|
+
let excludes = [];
|
|
87
|
+
if (excludes.includes(req.path))
|
|
88
|
+
next();
|
|
89
|
+
else
|
|
90
|
+
express_1.default.json({ limit: '100kb' })(req, res, next);
|
|
91
|
+
});
|
|
92
|
+
// Express
|
|
93
|
+
this.app.use(express_1.default.static('static'));
|
|
94
|
+
// Cors
|
|
95
|
+
this.app.use((0, cors_1.default)({ exposedHeaders: '*', }));
|
|
96
|
+
// api routes
|
|
97
|
+
this.app.use('/', this.getRouter());
|
|
98
|
+
// start server
|
|
99
|
+
const port = this.getPort();
|
|
100
|
+
this.app.listen(port, () => __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
this.logger.info(`Server listening on port ${port}`);
|
|
102
|
+
}));
|
|
83
103
|
});
|
|
84
|
-
// Express
|
|
85
|
-
this.app.use(express_1.default.static('static'));
|
|
86
|
-
// Cors
|
|
87
|
-
this.app.use((0, cors_1.default)({ exposedHeaders: '*', }));
|
|
88
|
-
// api routes
|
|
89
|
-
this.app.use('/', this.getRouter());
|
|
90
|
-
// start server
|
|
91
|
-
const port = this.getPort();
|
|
92
|
-
this.app.listen(port, () => __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
this.logger.info(`Server listening on port ${port}`);
|
|
94
|
-
}));
|
|
95
104
|
}
|
|
96
105
|
startSwagger() {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
servers: [
|
|
115
|
-
{
|
|
116
|
-
url: this.serverPath,
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
const joptions = {
|
|
108
|
+
definition: {
|
|
109
|
+
openapi: "3.0.1",
|
|
110
|
+
info: {
|
|
111
|
+
title: this.title,
|
|
112
|
+
description: this.description,
|
|
113
|
+
version: this.version,
|
|
114
|
+
// license: {
|
|
115
|
+
// name: "MIT",
|
|
116
|
+
// url: "https://spdx.org/licenses/MIT.html",
|
|
117
|
+
// },
|
|
118
|
+
// contact: {
|
|
119
|
+
// name: "Amir Abolhasani",
|
|
120
|
+
// url: "https://namirasoft.com",
|
|
121
|
+
// email: "accounts@namirasoft.com",
|
|
122
|
+
// },
|
|
117
123
|
},
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
servers: [
|
|
125
|
+
{
|
|
126
|
+
url: this.serverPath,
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
apis: ['./src/route/*.ts'],
|
|
131
|
+
};
|
|
132
|
+
const swaggerSpec = (0, swagger_jsdoc_1.default)(joptions);
|
|
133
|
+
var options = {
|
|
134
|
+
explorer: true
|
|
135
|
+
};
|
|
136
|
+
this.app.use(this.swaggerPath + "/", swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swaggerSpec, options));
|
|
137
|
+
});
|
|
127
138
|
}
|
|
128
139
|
startHomePage() {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
this.links.forEach(link => {
|
|
145
|
-
if (match) {
|
|
146
|
-
let row = match[1];
|
|
147
|
-
row = row.replace(/\@row_name/gm, link.name);
|
|
148
|
-
row = row.replace(/\@row_url/gm, link.url);
|
|
149
|
-
row = row.replace(/\@row_logo/gm, link.logo);
|
|
150
|
-
row = row.replace(/\@row_description/gm, link.description);
|
|
151
|
-
rows.push(row);
|
|
140
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
+
this.app.get(this.serverPath + "/", (_, res) => {
|
|
142
|
+
const htmlFilePath = path_1.default.join(__dirname, '../public/index.html');
|
|
143
|
+
fs_1.default.readFile(htmlFilePath, 'utf8', (err, data) => __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
if (err)
|
|
145
|
+
return res.status(500).send('Error reading HTML file');
|
|
146
|
+
data = data.replace(/\@title/gm, this.title);
|
|
147
|
+
data = data.replace(/\@description/gm, this.description);
|
|
148
|
+
data = data.replace(/\@logo/gm, this.logo);
|
|
149
|
+
let match = /<\@row>([\w\W]*)<\/\@row>/gm.exec(data);
|
|
150
|
+
if (match) {
|
|
151
|
+
let rows = [];
|
|
152
|
+
if (this.linkLoader) {
|
|
153
|
+
this.links = [];
|
|
154
|
+
yield this.linkLoader();
|
|
152
155
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
this.links.forEach(link => {
|
|
157
|
+
if (match) {
|
|
158
|
+
let row = match[1];
|
|
159
|
+
row = row.replace(/\@row_name/gm, link.name);
|
|
160
|
+
row = row.replace(/\@row_url/gm, link.url);
|
|
161
|
+
row = row.replace(/\@row_logo/gm, link.logo);
|
|
162
|
+
row = row.replace(/\@row_description/gm, link.description);
|
|
163
|
+
rows.push(row);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
data = data.replace(match[0], rows.join(" "));
|
|
167
|
+
}
|
|
168
|
+
res.send(data);
|
|
169
|
+
return;
|
|
170
|
+
}));
|
|
171
|
+
});
|
|
159
172
|
});
|
|
160
173
|
}
|
|
161
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA0C;AAC1C,gDAAwB;AACxB,4CAAoB;AACpB,4EAA2C;AAC3C,kEAAyC;AAIzC,gDAAwB;AACxB,qDAAiD;AAEjD,MAAsB,eAAe;IAiBjC,YAAY,UAAkB,EAAE,cAA6B,IAAI;;QARzD,UAAK,GAA0B,EAAE,CAAC;QAUtC,IAAI,IAAI,GAAG,gCAAc,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,EAAE,mCAAI,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,mCAAI,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,mCAAI,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,aAAa,CAAC,UAA+B;QAEzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,IAAyB;QAE7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,cAAc;QAEV,IAAI,CAAC,OAAO,CAAC;YACT,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,GAAG;YAC3B,IAAI,EAAE,qDAAqD;YAC3D,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,UAAU;SAC7C,CAAC,CAAC;IACP,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":"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"}
|
package/dist/BaseController.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare abstract class BaseController<D extends BaseDatabase, State, Prop
|
|
|
17
17
|
protected props: Props;
|
|
18
18
|
constructor(req: express.Request, res: express.Response);
|
|
19
19
|
abstract getLogger(): ILogger;
|
|
20
|
-
abstract getDatabase():
|
|
20
|
+
abstract getDatabase(): D;
|
|
21
21
|
abstract getAnomaly(): AnomalyDetector | null;
|
|
22
22
|
abstract getBodySchema(): SchemaLike | null;
|
|
23
23
|
abstract getQuerySchema(): SchemaLike | null;
|
package/dist/BaseController.js
CHANGED
|
@@ -35,7 +35,8 @@ class BaseController {
|
|
|
35
35
|
if (this.showLogAtTheBeginning)
|
|
36
36
|
this.logger.info(JSON.stringify(this.meta));
|
|
37
37
|
// init controller
|
|
38
|
-
this.database =
|
|
38
|
+
this.database = this.getDatabase();
|
|
39
|
+
this.database.init();
|
|
39
40
|
this.state = yield this.getState();
|
|
40
41
|
this.props = yield this.getProps();
|
|
41
42
|
// preHandle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,iCAA8B;AAC9B,8CAAsB;AACtB,qDAA4D;AAE5D,MAAsB,cAAc;IAYhC,YAAY,GAAoB,EAAE,GAAqB;QAV7C,0BAAqB,GAAY,KAAK,CAAC;QACvC,oBAAe,GAAY,IAAI,CAAC;QAWtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IAYK,GAAG;;YAEL,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,SAAS;YACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IACA;gBACI,OAAO;gBACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,IAAI,CAAC,qBAAqB;oBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChD,kBAAkB;gBAClB,IAAI,CAAC,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":"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"}
|
package/dist/BaseDatabase.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "namirasoft-node",
|
|
3
3
|
"description": "Namira Software Corporation Node NPM Package",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.2",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"scripts": {},
|
|
@@ -25,9 +25,7 @@
|
|
|
25
25
|
"request-ip": "^3.3.0",
|
|
26
26
|
"sequelize": "^6.35.0",
|
|
27
27
|
"swagger-jsdoc": "^6.2.8",
|
|
28
|
-
"swagger-ui-express": "^5.0.0"
|
|
29
|
-
|
|
30
|
-
"devDependencies": {
|
|
31
|
-
"@types/node": "^20.9.0"
|
|
28
|
+
"swagger-ui-express": "^5.0.0",
|
|
29
|
+
"@types/node": "^20.9.2"
|
|
32
30
|
}
|
|
33
31
|
}
|
package/src/BaseApplication.ts
CHANGED
|
@@ -56,16 +56,16 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
56
56
|
description: this.description + " Swagger"
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
|
-
start()
|
|
59
|
+
async start()
|
|
60
60
|
{
|
|
61
|
-
this.startCrashHandler();
|
|
62
|
-
this.startDatabase();
|
|
63
|
-
this.startServer();
|
|
64
|
-
this.startSwagger();
|
|
65
|
-
this.startHomePage();
|
|
66
|
-
this.onStart();
|
|
61
|
+
await this.startCrashHandler();
|
|
62
|
+
await this.startDatabase();
|
|
63
|
+
await this.startServer();
|
|
64
|
+
await this.startSwagger();
|
|
65
|
+
await this.startHomePage();
|
|
66
|
+
await this.onStart();
|
|
67
67
|
}
|
|
68
|
-
protected startCrashHandler(): void
|
|
68
|
+
protected async startCrashHandler(): Promise<void>
|
|
69
69
|
{
|
|
70
70
|
process.on('unhandledRejection', (reason) =>
|
|
71
71
|
{
|
|
@@ -79,12 +79,13 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
79
79
|
this.logger.onCatchFatal(error);
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
protected startDatabase(): void
|
|
82
|
+
protected async startDatabase(): Promise<void>
|
|
83
83
|
{
|
|
84
84
|
this.database = this.getDatabase();
|
|
85
|
-
this.database.init()
|
|
85
|
+
this.database.init();
|
|
86
|
+
await this.database.sync(false);
|
|
86
87
|
}
|
|
87
|
-
protected startServer(): void
|
|
88
|
+
protected async startServer(): Promise<void>
|
|
88
89
|
{
|
|
89
90
|
this.app = express();
|
|
90
91
|
this.app.use((req, res, next) =>
|
|
@@ -108,7 +109,7 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
108
109
|
this.logger.info(`Server listening on port ${port}`);
|
|
109
110
|
});
|
|
110
111
|
}
|
|
111
|
-
protected startSwagger(): void
|
|
112
|
+
protected async startSwagger(): Promise<void>
|
|
112
113
|
{
|
|
113
114
|
const joptions = {
|
|
114
115
|
definition: {
|
|
@@ -141,7 +142,7 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
141
142
|
};
|
|
142
143
|
this.app.use(this.swaggerPath + "/", swaggerUi.serve, swaggerUi.setup(swaggerSpec, options));
|
|
143
144
|
}
|
|
144
|
-
protected startHomePage(): void
|
|
145
|
+
protected async startHomePage(): Promise<void>
|
|
145
146
|
{
|
|
146
147
|
this.app.get(this.serverPath + "/", (_, res) =>
|
|
147
148
|
{
|
package/src/BaseController.ts
CHANGED
|
@@ -26,7 +26,7 @@ export abstract class BaseController<D extends BaseDatabase, State, Props>
|
|
|
26
26
|
this.logger = this.getLogger();
|
|
27
27
|
}
|
|
28
28
|
abstract getLogger(): ILogger;
|
|
29
|
-
abstract getDatabase():
|
|
29
|
+
abstract getDatabase(): D;
|
|
30
30
|
abstract getAnomaly(): AnomalyDetector | null;
|
|
31
31
|
abstract getBodySchema(): SchemaLike | null;
|
|
32
32
|
abstract getQuerySchema(): SchemaLike | null;
|
|
@@ -48,7 +48,8 @@ export abstract class BaseController<D extends BaseDatabase, State, Props>
|
|
|
48
48
|
if (this.showLogAtTheBeginning)
|
|
49
49
|
this.logger.info(JSON.stringify(this.meta));
|
|
50
50
|
// init controller
|
|
51
|
-
this.database =
|
|
51
|
+
this.database = this.getDatabase();
|
|
52
|
+
this.database.init();
|
|
52
53
|
this.state = await this.getState();
|
|
53
54
|
this.props = await this.getProps();
|
|
54
55
|
|
package/src/BaseDatabase.ts
CHANGED