namirasoft-node 1.1.6 → 1.1.8
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.
|
@@ -7,8 +7,8 @@ export declare abstract class BaseApplication<D extends BaseDatabase> {
|
|
|
7
7
|
protected description: string;
|
|
8
8
|
protected logo: string;
|
|
9
9
|
protected version: string;
|
|
10
|
-
protected
|
|
11
|
-
protected
|
|
10
|
+
protected base_path: string;
|
|
11
|
+
protected swagger_path: string;
|
|
12
12
|
private linkLoader?;
|
|
13
13
|
private links;
|
|
14
14
|
app: express.Express;
|
|
@@ -16,9 +16,9 @@ export declare abstract class BaseApplication<D extends BaseDatabase> {
|
|
|
16
16
|
logger: ILogger;
|
|
17
17
|
protected abstract getDatabase(): D;
|
|
18
18
|
protected abstract getLogger(): ILogger;
|
|
19
|
-
protected abstract getRouter(): Router
|
|
19
|
+
protected abstract getRouter(): Promise<Router>;
|
|
20
20
|
protected abstract getPort(): number;
|
|
21
|
-
constructor(
|
|
21
|
+
constructor(base_path: string, swagger_path?: string | null);
|
|
22
22
|
setLinkLoader(linkLoader: () => Promise<void>): void;
|
|
23
23
|
addLink(link: BaseApplicationLink): void;
|
|
24
24
|
addSwaggerLink(): void;
|
package/dist/BaseApplication.js
CHANGED
|
@@ -21,7 +21,7 @@ const swagger_jsdoc_1 = __importDefault(require("swagger-jsdoc"));
|
|
|
21
21
|
const path_1 = __importDefault(require("path"));
|
|
22
22
|
const namirasoft_core_1 = require("namirasoft-core");
|
|
23
23
|
class BaseApplication {
|
|
24
|
-
constructor(
|
|
24
|
+
constructor(base_path, swagger_path = null) {
|
|
25
25
|
var _a, _b, _c, _d;
|
|
26
26
|
this.links = [];
|
|
27
27
|
let json = namirasoft_core_1.PackageService.getMain();
|
|
@@ -29,8 +29,8 @@ class BaseApplication {
|
|
|
29
29
|
this.description = (_b = json === null || json === void 0 ? void 0 : json.getDescription()) !== null && _b !== void 0 ? _b : "";
|
|
30
30
|
this.logo = (_c = json === null || json === void 0 ? void 0 : json.getLogo()) !== null && _c !== void 0 ? _c : "";
|
|
31
31
|
this.version = (_d = json === null || json === void 0 ? void 0 : json.getVersion()) !== null && _d !== void 0 ? _d : "";
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
32
|
+
this.base_path = base_path;
|
|
33
|
+
this.swagger_path = swagger_path !== null && swagger_path !== void 0 ? swagger_path : (base_path + "/swagger");
|
|
34
34
|
this.logger = this.getLogger();
|
|
35
35
|
this.addLink = this.addLink.bind(this);
|
|
36
36
|
this.addSwaggerLink = this.addSwaggerLink.bind(this);
|
|
@@ -44,7 +44,7 @@ class BaseApplication {
|
|
|
44
44
|
addSwaggerLink() {
|
|
45
45
|
this.addLink({
|
|
46
46
|
name: "Swagger",
|
|
47
|
-
url: this.
|
|
47
|
+
url: this.swagger_path + "/",
|
|
48
48
|
logo: "https://static.namirasoft.com/logo/swagger/base.png",
|
|
49
49
|
description: this.description + " Swagger"
|
|
50
50
|
});
|
|
@@ -94,7 +94,7 @@ class BaseApplication {
|
|
|
94
94
|
// Cors
|
|
95
95
|
this.app.use((0, cors_1.default)({ exposedHeaders: '*', }));
|
|
96
96
|
// api routes
|
|
97
|
-
this.app.use('/', this.getRouter());
|
|
97
|
+
this.app.use('/', yield this.getRouter());
|
|
98
98
|
// start server
|
|
99
99
|
const port = this.getPort();
|
|
100
100
|
this.app.listen(port, () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -123,7 +123,7 @@ class BaseApplication {
|
|
|
123
123
|
},
|
|
124
124
|
servers: [
|
|
125
125
|
{
|
|
126
|
-
url: this.
|
|
126
|
+
url: this.base_path,
|
|
127
127
|
},
|
|
128
128
|
],
|
|
129
129
|
},
|
|
@@ -133,12 +133,12 @@ class BaseApplication {
|
|
|
133
133
|
var options = {
|
|
134
134
|
explorer: true
|
|
135
135
|
};
|
|
136
|
-
this.app.use(this.
|
|
136
|
+
this.app.use(this.swagger_path + "/", swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swaggerSpec, options));
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
139
|
startHomePage() {
|
|
140
140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
this.app.get(this.
|
|
141
|
+
this.app.get(this.base_path + "/", (_, res) => {
|
|
142
142
|
const htmlFilePath = path_1.default.join(__dirname, '../public/index.html');
|
|
143
143
|
fs_1.default.readFile(htmlFilePath, 'utf8', (err, data) => __awaiter(this, void 0, void 0, function* () {
|
|
144
144
|
if (err)
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/BaseApplication.ts
CHANGED
|
@@ -15,8 +15,8 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
15
15
|
protected description: string;
|
|
16
16
|
protected logo: string;
|
|
17
17
|
protected version: string;
|
|
18
|
-
protected
|
|
19
|
-
protected
|
|
18
|
+
protected base_path: string;
|
|
19
|
+
protected swagger_path: string;
|
|
20
20
|
private linkLoader?: () => Promise<void>;
|
|
21
21
|
private links: BaseApplicationLink[] = [];
|
|
22
22
|
public app!: express.Express;
|
|
@@ -24,17 +24,17 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
24
24
|
public logger: ILogger;
|
|
25
25
|
protected abstract getDatabase(): D;
|
|
26
26
|
protected abstract getLogger(): ILogger;
|
|
27
|
-
protected abstract getRouter(): Router
|
|
27
|
+
protected abstract getRouter(): Promise<Router>;
|
|
28
28
|
protected abstract getPort(): number;
|
|
29
|
-
constructor(
|
|
29
|
+
constructor(base_path: string, swagger_path: string | null = null)
|
|
30
30
|
{
|
|
31
31
|
let json = PackageService.getMain();
|
|
32
32
|
this.title = json?.getTitle() ?? "";
|
|
33
33
|
this.description = json?.getDescription() ?? "";
|
|
34
34
|
this.logo = json?.getLogo() ?? "";
|
|
35
35
|
this.version = json?.getVersion() ?? "";
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
36
|
+
this.base_path = base_path;
|
|
37
|
+
this.swagger_path = swagger_path ?? (base_path + "/swagger");
|
|
38
38
|
this.logger = this.getLogger();
|
|
39
39
|
this.addLink = this.addLink.bind(this);
|
|
40
40
|
this.addSwaggerLink = this.addSwaggerLink.bind(this);
|
|
@@ -51,7 +51,7 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
51
51
|
{
|
|
52
52
|
this.addLink({
|
|
53
53
|
name: "Swagger",
|
|
54
|
-
url: this.
|
|
54
|
+
url: this.swagger_path + "/",
|
|
55
55
|
logo: "https://static.namirasoft.com/logo/swagger/base.png",
|
|
56
56
|
description: this.description + " Swagger"
|
|
57
57
|
});
|
|
@@ -101,7 +101,7 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
101
101
|
// Cors
|
|
102
102
|
this.app.use(cors({ exposedHeaders: '*', }));
|
|
103
103
|
// api routes
|
|
104
|
-
this.app.use('/', this.getRouter());
|
|
104
|
+
this.app.use('/', await this.getRouter());
|
|
105
105
|
// start server
|
|
106
106
|
const port = this.getPort();
|
|
107
107
|
this.app.listen(port, async () =>
|
|
@@ -130,7 +130,7 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
130
130
|
},
|
|
131
131
|
servers: [
|
|
132
132
|
{
|
|
133
|
-
url: this.
|
|
133
|
+
url: this.base_path,
|
|
134
134
|
},
|
|
135
135
|
],
|
|
136
136
|
},
|
|
@@ -140,11 +140,11 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
140
140
|
var options = {
|
|
141
141
|
explorer: true
|
|
142
142
|
};
|
|
143
|
-
this.app.use(this.
|
|
143
|
+
this.app.use(this.swagger_path + "/", swaggerUi.serve, swaggerUi.setup(swaggerSpec, options));
|
|
144
144
|
}
|
|
145
145
|
protected async startHomePage(): Promise<void>
|
|
146
146
|
{
|
|
147
|
-
this.app.get(this.
|
|
147
|
+
this.app.get(this.base_path + "/", (_, res) =>
|
|
148
148
|
{
|
|
149
149
|
const htmlFilePath = path.join(__dirname, '../public/index.html');
|
|
150
150
|
fs.readFile(htmlFilePath, 'utf8', async (err: any, data: string) =>
|