namirasoft-node 1.0.17 → 1.0.19
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 +2 -0
- package/dist/BaseApplication.js +15 -8
- package/dist/BaseApplication.js.map +1 -1
- package/dist/BaseApplicationLink.d.ts +3 -3
- package/package.json +6 -6
- package/public/index.html +2 -2
- package/src/BaseApplication.ts +17 -7
- package/src/BaseApplicationLink.ts +3 -3
|
@@ -9,6 +9,7 @@ export declare abstract class BaseApplication<D extends BaseDatabase> {
|
|
|
9
9
|
private version;
|
|
10
10
|
private serverPath;
|
|
11
11
|
private swaggerPath;
|
|
12
|
+
private linkLoader?;
|
|
12
13
|
private links;
|
|
13
14
|
app: express.Express;
|
|
14
15
|
database: D;
|
|
@@ -18,6 +19,7 @@ export declare abstract class BaseApplication<D extends BaseDatabase> {
|
|
|
18
19
|
protected abstract getRouter(): Router;
|
|
19
20
|
protected abstract getPort(): number;
|
|
20
21
|
constructor(serverPath: string, swaggerPath?: string | null);
|
|
22
|
+
setLinkLoader(linkLoader: () => Promise<void>): void;
|
|
21
23
|
addLink(link: BaseApplicationLink): void;
|
|
22
24
|
addSwaggerLink(): void;
|
|
23
25
|
start(): void;
|
package/dist/BaseApplication.js
CHANGED
|
@@ -33,15 +33,18 @@ class BaseApplication {
|
|
|
33
33
|
this.swaggerPath = swaggerPath !== null && swaggerPath !== void 0 ? swaggerPath : (serverPath + "/swagger");
|
|
34
34
|
this.logger = this.getLogger();
|
|
35
35
|
}
|
|
36
|
+
setLinkLoader(linkLoader) {
|
|
37
|
+
this.linkLoader = linkLoader;
|
|
38
|
+
}
|
|
36
39
|
addLink(link) {
|
|
37
40
|
this.links.push(link);
|
|
38
41
|
}
|
|
39
42
|
addSwaggerLink() {
|
|
40
43
|
this.addLink({
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
name: "Swagger",
|
|
45
|
+
url: this.swaggerPath + "/",
|
|
43
46
|
logo: "https://static.namirasoft.com/logo/swagger/base.png",
|
|
44
|
-
|
|
47
|
+
description: this.description + " Swagger"
|
|
45
48
|
});
|
|
46
49
|
}
|
|
47
50
|
start() {
|
|
@@ -122,7 +125,7 @@ class BaseApplication {
|
|
|
122
125
|
startHomePage() {
|
|
123
126
|
this.app.get(this.serverPath + "/", (_, res) => {
|
|
124
127
|
const htmlFilePath = path_1.default.join(__dirname, '../public/index.html');
|
|
125
|
-
fs_1.default.readFile(htmlFilePath, 'utf8', (err, data) => {
|
|
128
|
+
fs_1.default.readFile(htmlFilePath, 'utf8', (err, data) => __awaiter(this, void 0, void 0, function* () {
|
|
126
129
|
if (err)
|
|
127
130
|
return res.status(500).send('Error reading HTML file');
|
|
128
131
|
data = data.replace(/\@title/gm, this.title);
|
|
@@ -131,13 +134,17 @@ class BaseApplication {
|
|
|
131
134
|
let match = /<\@row>([\w\W]*)<\/\@row>/gm.exec(data);
|
|
132
135
|
if (match) {
|
|
133
136
|
let rows = [];
|
|
137
|
+
if (this.linkLoader) {
|
|
138
|
+
this.links = [];
|
|
139
|
+
yield this.linkLoader();
|
|
140
|
+
}
|
|
134
141
|
this.links.forEach(link => {
|
|
135
142
|
if (match) {
|
|
136
143
|
let row = match[1];
|
|
137
|
-
row = row.replace(/\@
|
|
138
|
-
row = row.replace(/\@
|
|
144
|
+
row = row.replace(/\@row_name/gm, link.name);
|
|
145
|
+
row = row.replace(/\@row_url/gm, link.url);
|
|
139
146
|
row = row.replace(/\@row_logo/gm, link.logo);
|
|
140
|
-
row = row.replace(/\@
|
|
147
|
+
row = row.replace(/\@row_description/gm, link.description);
|
|
141
148
|
rows.push(row);
|
|
142
149
|
}
|
|
143
150
|
});
|
|
@@ -145,7 +152,7 @@ class BaseApplication {
|
|
|
145
152
|
}
|
|
146
153
|
res.send(data);
|
|
147
154
|
return;
|
|
148
|
-
});
|
|
155
|
+
}));
|
|
149
156
|
});
|
|
150
157
|
}
|
|
151
158
|
}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":"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"}
|
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.0.
|
|
4
|
+
"version": "1.0.19",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"scripts": {},
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
"@supercharge/request-ip": "^1.2.0",
|
|
12
12
|
"@types/cors": "^2.8.16",
|
|
13
13
|
"@types/express": "^4.17.21",
|
|
14
|
-
"@types/nodemailer": "^6.4.
|
|
14
|
+
"@types/nodemailer": "^6.4.14",
|
|
15
15
|
"@types/nodemailer-smtp-transport": "^2.7.8",
|
|
16
|
-
"@types/swagger-jsdoc": "^6.0.
|
|
17
|
-
"@types/swagger-ui-express": "^4.1.
|
|
16
|
+
"@types/swagger-jsdoc": "^6.0.3",
|
|
17
|
+
"@types/swagger-ui-express": "^4.1.6",
|
|
18
18
|
"cors": "^2.8.5",
|
|
19
19
|
"express": "^4.18.2",
|
|
20
20
|
"joi": "^17.11.0",
|
|
21
|
-
"namirasoft-core": "^1.0.
|
|
21
|
+
"namirasoft-core": "^1.0.12",
|
|
22
22
|
"namirasoft-log": "^1.0.1",
|
|
23
23
|
"nodemailer": "^6.9.7",
|
|
24
24
|
"nodemailer-smtp-transport": "^2.7.4",
|
|
@@ -28,6 +28,6 @@
|
|
|
28
28
|
"swagger-ui-express": "^5.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^20.
|
|
31
|
+
"@types/node": "^20.9.0"
|
|
32
32
|
}
|
|
33
33
|
}
|
package/public/index.html
CHANGED
|
@@ -73,10 +73,10 @@
|
|
|
73
73
|
<div class="row gy-5">
|
|
74
74
|
<@row>
|
|
75
75
|
<div class="p-2 col-md-6">
|
|
76
|
-
<a target="_blank" href="@
|
|
76
|
+
<a target="_blank" href="@row_url" class="border card">
|
|
77
77
|
<img src="@row_logo" class="img-fluid">
|
|
78
78
|
<div class="content">
|
|
79
|
-
<h2>@
|
|
79
|
+
<h2>@row_name</h2>
|
|
80
80
|
<p>@row_description</p>
|
|
81
81
|
</div>
|
|
82
82
|
</a>
|
package/src/BaseApplication.ts
CHANGED
|
@@ -17,6 +17,7 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
17
17
|
private version: string;
|
|
18
18
|
private serverPath: string;
|
|
19
19
|
private swaggerPath: string;
|
|
20
|
+
private linkLoader?: () => Promise<void>;
|
|
20
21
|
private links: BaseApplicationLink[] = [];
|
|
21
22
|
public app!: express.Express;
|
|
22
23
|
public database!: D;
|
|
@@ -36,6 +37,10 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
36
37
|
this.swaggerPath = swaggerPath ?? (serverPath + "/swagger");
|
|
37
38
|
this.logger = this.getLogger();
|
|
38
39
|
}
|
|
40
|
+
setLinkLoader(linkLoader: () => Promise<void>)
|
|
41
|
+
{
|
|
42
|
+
this.linkLoader = linkLoader;
|
|
43
|
+
}
|
|
39
44
|
addLink(link: BaseApplicationLink)
|
|
40
45
|
{
|
|
41
46
|
this.links.push(link);
|
|
@@ -43,10 +48,10 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
43
48
|
addSwaggerLink()
|
|
44
49
|
{
|
|
45
50
|
this.addLink({
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
name: "Swagger",
|
|
52
|
+
url: this.swaggerPath + "/",
|
|
48
53
|
logo: "https://static.namirasoft.com/logo/swagger/base.png",
|
|
49
|
-
|
|
54
|
+
description: this.description + " Swagger"
|
|
50
55
|
});
|
|
51
56
|
}
|
|
52
57
|
start()
|
|
@@ -138,7 +143,7 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
138
143
|
this.app.get(this.serverPath + "/", (_, res) =>
|
|
139
144
|
{
|
|
140
145
|
const htmlFilePath = path.join(__dirname, '../public/index.html');
|
|
141
|
-
fs.readFile(htmlFilePath, 'utf8', (err: any, data: string) =>
|
|
146
|
+
fs.readFile(htmlFilePath, 'utf8', async (err: any, data: string) =>
|
|
142
147
|
{
|
|
143
148
|
if (err)
|
|
144
149
|
return res.status(500).send('Error reading HTML file');
|
|
@@ -150,15 +155,20 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
150
155
|
if (match)
|
|
151
156
|
{
|
|
152
157
|
let rows: string[] = [];
|
|
158
|
+
if (this.linkLoader)
|
|
159
|
+
{
|
|
160
|
+
this.links = [];
|
|
161
|
+
await this.linkLoader();
|
|
162
|
+
}
|
|
153
163
|
this.links.forEach(link =>
|
|
154
164
|
{
|
|
155
165
|
if (match)
|
|
156
166
|
{
|
|
157
167
|
let row = match[1];
|
|
158
|
-
row = row.replace(/\@
|
|
159
|
-
row = row.replace(/\@
|
|
168
|
+
row = row.replace(/\@row_name/gm, link.name);
|
|
169
|
+
row = row.replace(/\@row_url/gm, link.url);
|
|
160
170
|
row = row.replace(/\@row_logo/gm, link.logo);
|
|
161
|
-
row = row.replace(/\@
|
|
171
|
+
row = row.replace(/\@row_description/gm, link.description);
|
|
162
172
|
rows.push(row);
|
|
163
173
|
}
|
|
164
174
|
});
|