namirasoft-node 1.0.17 → 1.0.18
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.
|
@@ -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,6 +33,9 @@ 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
|
}
|
|
@@ -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,6 +134,10 @@ 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];
|
|
@@ -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.18",
|
|
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/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);
|
|
@@ -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,6 +155,11 @@ 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)
|