namirasoft-node 1.2.24 → 1.2.25
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 +8 -5
- package/dist/BaseApplication.js +23 -23
- package/dist/BaseApplication.js.map +1 -1
- package/package.json +1 -1
- package/src/BaseApplication.ts +28 -26
|
@@ -6,20 +6,22 @@ import { PackageService } from 'namirasoft-core';
|
|
|
6
6
|
import { ApplicationSchema } from 'namirasoft-schema';
|
|
7
7
|
export declare abstract class BaseApplication<D extends BaseDatabase> {
|
|
8
8
|
private linkLoader?;
|
|
9
|
+
private page_dir;
|
|
10
|
+
private swagger_dir;
|
|
11
|
+
private page_path;
|
|
12
|
+
private swagger_path;
|
|
9
13
|
private links;
|
|
14
|
+
protected base_path: string;
|
|
10
15
|
protected pkg: PackageService;
|
|
11
16
|
protected title: string;
|
|
12
17
|
protected description: string;
|
|
13
18
|
protected logo: string;
|
|
14
19
|
protected version: string;
|
|
15
|
-
protected base_path: string;
|
|
16
|
-
protected swagger_path: string;
|
|
17
|
-
protected swagger_dir: string;
|
|
18
20
|
protected mode: string;
|
|
19
21
|
express: express.Express;
|
|
20
22
|
database: D;
|
|
21
23
|
logger: ILogger;
|
|
22
|
-
constructor(base_path: string
|
|
24
|
+
constructor(base_path: string);
|
|
23
25
|
protected abstract getDatabase(): D;
|
|
24
26
|
protected abstract getLogger(): ILogger;
|
|
25
27
|
protected abstract getPort(): number;
|
|
@@ -32,7 +34,8 @@ export declare abstract class BaseApplication<D extends BaseDatabase> {
|
|
|
32
34
|
protected startSwagger(): Promise<void>;
|
|
33
35
|
protected startHomePage(): Promise<void>;
|
|
34
36
|
protected abstract handleHomePage(_: express.Request, __: express.Response): Promise<void>;
|
|
35
|
-
protected
|
|
37
|
+
protected createOtherPages(): Promise<void>;
|
|
38
|
+
protected startOtherPages(): Promise<void>;
|
|
36
39
|
protected startOthers(): Promise<void>;
|
|
37
40
|
protected getRouter(): Promise<Router>;
|
|
38
41
|
protected saveSchema(): Promise<void>;
|
package/dist/BaseApplication.js
CHANGED
|
@@ -47,21 +47,31 @@ const namirasoft_schema_1 = require("namirasoft-schema");
|
|
|
47
47
|
const EnvService_1 = require("./EnvService");
|
|
48
48
|
const BaseController_1 = require("./BaseController");
|
|
49
49
|
class BaseApplication {
|
|
50
|
-
constructor(base_path
|
|
50
|
+
constructor(base_path) {
|
|
51
51
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
52
52
|
this.links = [];
|
|
53
|
+
this.base_path = base_path;
|
|
54
|
+
this.page_dir = "./page";
|
|
55
|
+
this.swagger_dir = "./swagger";
|
|
56
|
+
this.page_path = base_path + "/page";
|
|
57
|
+
this.swagger_path = this.page_dir + "/swagger";
|
|
53
58
|
this.pkg = namirasoft_core_1.PackageService.getMain();
|
|
54
59
|
this.title = (_b = (_a = this.pkg) === null || _a === void 0 ? void 0 : _a.getTitle()) !== null && _b !== void 0 ? _b : "";
|
|
55
60
|
this.description = (_d = (_c = this.pkg) === null || _c === void 0 ? void 0 : _c.getDescription()) !== null && _d !== void 0 ? _d : "";
|
|
56
61
|
this.logo = (_f = (_e = this.pkg) === null || _e === void 0 ? void 0 : _e.getLogo()) !== null && _f !== void 0 ? _f : "";
|
|
57
62
|
this.version = (_h = (_g = this.pkg) === null || _g === void 0 ? void 0 : _g.getVersion()) !== null && _h !== void 0 ? _h : "";
|
|
58
|
-
this.base_path = base_path;
|
|
59
|
-
this.swagger_path = swagger_path !== null && swagger_path !== void 0 ? swagger_path : (base_path + "/swagger");
|
|
60
|
-
this.swagger_dir = "./swagger";
|
|
61
63
|
this.mode = new EnvService_1.EnvService("SERVER_MODE", false).getString("api").toLowerCase();
|
|
62
64
|
this.logger = this.getLogger();
|
|
63
65
|
this.addLink = this.addLink.bind(this);
|
|
64
66
|
this.addSwaggerLink = this.addSwaggerLink.bind(this);
|
|
67
|
+
// create folders
|
|
68
|
+
let pkg = namirasoft_core_1.PackageService.getMain();
|
|
69
|
+
this.page_dir = path.join(path.dirname(pkg.getPath()), this.page_dir);
|
|
70
|
+
this.swagger_dir = path.join(path.dirname(pkg.getPath()), this.swagger_dir);
|
|
71
|
+
if (!fs.existsSync(this.page_dir))
|
|
72
|
+
fs.mkdirSync(this.page_dir);
|
|
73
|
+
if (!fs.existsSync(this.swagger_dir))
|
|
74
|
+
fs.mkdirSync(this.swagger_dir, { recursive: true });
|
|
65
75
|
}
|
|
66
76
|
// start
|
|
67
77
|
start() {
|
|
@@ -74,7 +84,8 @@ class BaseApplication {
|
|
|
74
84
|
yield this.createSwagger();
|
|
75
85
|
yield this.startSwagger();
|
|
76
86
|
yield this.startHomePage();
|
|
77
|
-
yield this.
|
|
87
|
+
yield this.createOtherPages();
|
|
88
|
+
yield this.startOtherPages();
|
|
78
89
|
}
|
|
79
90
|
yield this.startOthers();
|
|
80
91
|
}
|
|
@@ -110,14 +121,6 @@ class BaseApplication {
|
|
|
110
121
|
return __awaiter(this, void 0, void 0, function* () {
|
|
111
122
|
if (!process.env.NAMIRASOFT_MUTE) {
|
|
112
123
|
this.express = (0, express_1.default)();
|
|
113
|
-
// this.express.use((req, res, next) =>
|
|
114
|
-
// {
|
|
115
|
-
// let excludes: string[] = [];
|
|
116
|
-
// if (excludes.includes(req.path))
|
|
117
|
-
// next();
|
|
118
|
-
// else
|
|
119
|
-
// express.json({ limit: '100kb' })(req, res, next);
|
|
120
|
-
// });
|
|
121
124
|
// Express
|
|
122
125
|
this.express.use(express_1.default.static('static'));
|
|
123
126
|
// Cors
|
|
@@ -137,8 +140,6 @@ class BaseApplication {
|
|
|
137
140
|
let schema = yield this.getSchema();
|
|
138
141
|
let builder = new namirasoft_schema_1.SwaggerApplicationBuilder(schema);
|
|
139
142
|
let result = yield builder.run();
|
|
140
|
-
if (!fs.existsSync(this.swagger_dir))
|
|
141
|
-
fs.mkdirSync(this.swagger_dir, { recursive: true });
|
|
142
143
|
for (let name of Object.keys(result.controllers)) {
|
|
143
144
|
const lines = result.controllers[name];
|
|
144
145
|
fs.writeFileSync(this.swagger_dir + "/controller_" + name + ".swg", lines.join("\n"));
|
|
@@ -190,19 +191,18 @@ class BaseApplication {
|
|
|
190
191
|
});
|
|
191
192
|
});
|
|
192
193
|
}
|
|
193
|
-
|
|
194
|
+
createOtherPages() {
|
|
195
|
+
return __awaiter(this, void 0, void 0, function* () { });
|
|
196
|
+
}
|
|
197
|
+
startOtherPages() {
|
|
194
198
|
return __awaiter(this, void 0, void 0, function* () {
|
|
195
|
-
let
|
|
196
|
-
const pagesPath = path.join(path.dirname(pkg.getPath()), './pages');
|
|
197
|
-
if (!fs.existsSync(pagesPath))
|
|
198
|
-
fs.mkdirSync(pagesPath);
|
|
199
|
-
let files = fs.readdirSync(pagesPath);
|
|
199
|
+
let files = fs.readdirSync(this.page_dir);
|
|
200
200
|
for (let i = 0; i < files.length; i++) {
|
|
201
201
|
const file = files[i];
|
|
202
202
|
if (file.endsWith(".html")) {
|
|
203
|
-
const fullPath = path.join(
|
|
203
|
+
const fullPath = path.join(this.page_dir, file);
|
|
204
204
|
let name = path.parse(fullPath).name;
|
|
205
|
-
this.express.get(this.
|
|
205
|
+
this.express.get(this.page_path + "/" + name, (_, res) => {
|
|
206
206
|
fs.readFile(fullPath, 'utf8', (err, data) => __awaiter(this, void 0, void 0, function* () {
|
|
207
207
|
if (err)
|
|
208
208
|
return res.status(500).send('Error reading HTML file');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0C;AAC1C,gDAAwB;AACxB,uCAAyB;AACzB,2CAA6B;AAC7B,4EAA2C;AAC3C,kEAAyC;AAIzC,qDAA6D;AAC7D,yDAAqG;AACrG,6CAA0C;AAC1C,qDAAkD;AAElD,MAAsB,eAAe;
|
|
1
|
+
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0C;AAC1C,gDAAwB;AACxB,uCAAyB;AACzB,2CAA6B;AAC7B,4EAA2C;AAC3C,kEAAyC;AAIzC,qDAA6D;AAC7D,yDAAqG;AACrG,6CAA0C;AAC1C,qDAAkD;AAElD,MAAsB,eAAe;IAkBjC,YAAY,SAAiB;;QAXrB,UAAK,GAA0B,EAAE,CAAC;QAatC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC/C,IAAI,CAAC,GAAG,GAAG,gCAAc,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,cAAc,EAAE,mCAAI,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,OAAO,EAAE,mCAAI,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,UAAU,EAAE,mCAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAChF,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;QAErD,iBAAiB;QACjB,IAAI,GAAG,GAAG,gCAAc,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YAClC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAKD,QAAQ;IACF,KAAK;;YAEP,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAChC;gBACI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,EACtB;oBACI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;iBAChC;gBACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;aAC5B;iBAED;gBACI,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;aAC3B;QACL,CAAC;KAAA;IACe,iBAAiB;;YAE7B,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;gBAC3B,OAAO;YAEX,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAExC,IAAI,MAAM,YAAY,KAAK;oBACvB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;;oBAEpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAEtC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IACe,aAAa;;YAEzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;KAAA;IACe,YAAY;;YAExB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAChC;gBACI,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAO,GAAE,CAAC;gBACzB,UAAU;gBACV,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3C,OAAO;gBACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBACjD,aAAa;gBACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9C,eAAe;gBACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAS,EAAE;oBAEjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;gBACzD,CAAC,CAAA,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IACe,aAAa;;YAEzB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,OAAO,GAAG,IAAI,6CAAyB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;YACjC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAChD;gBACI,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,GAAG,cAAc,GAAG,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACzF;YACD,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAC5C;gBACI,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACpF;QACL,CAAC;KAAA;IACe,YAAY;;YAExB,MAAM,QAAQ,GAAG;gBACb,UAAU,EAAE;oBACR,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE;wBACF,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,aAAa;wBACb,mBAAmB;wBACnB,iDAAiD;wBACjD,KAAK;wBACL,aAAa;wBACb,+BAA+B;wBAC/B,qCAAqC;wBACrC,wCAAwC;wBACxC,KAAK;qBACR;oBACD,OAAO,EAAE;wBACL;4BACI,GAAG,EAAE,IAAI,CAAC,SAAS;yBACtB;qBACJ;iBACJ;gBACD,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;aACtC,CAAC;YACF,MAAM,WAAW,GAAG,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,OAAO,GAAG;gBACV,QAAQ,EAAE,IAAI;aACjB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,4BAAS,CAAC,KAAK,EAAE,4BAAS,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACtG,CAAC;KAAA;IACe,aAAa;;YAEzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAEhD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEe,gBAAgB;8DAC9B,CAAC;KAAA;IACa,eAAe;;YAE3B,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EACzB;oBACI,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAChD,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBAErD,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAO,GAAQ,EAAE,IAAY,EAAE,EAAE;4BAE3D,IAAI,GAAG;gCACH,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;4BAC3D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACf,OAAO;wBACX,CAAC,CAAA,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;aACJ;QACL,CAAC;KAAA;IACe,WAAW;8DACzB,CAAC;KAAA;IACa,SAAS;;YAErB,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAC3C;gBACI,IACA;oBACI,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAQ,CAAC;oBACvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAChD,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAC9B,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;wBAC5B,QAAQ,CAAC,IAAI,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACvE,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;wBAC3B,QAAQ,CAAC,IAAI,CAAC,iBAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACnE,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;wBAE1D,IAAI,UAAU,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC9C,UAAU,CAAC,GAAG,EAAE,CAAC;oBACrB,CAAC,CAAC,CAAC;oBACH,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;oBACtC,IAAI,EAAE,GAAyB,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;oBACpE,KAAK,IAAI,CAAC,IAAI,EAAE;wBACZ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrD,IAAI,IAAI,CAAC,MAAM,IAAI,4BAAU,CAAC,GAAG;wBAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;yBAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,4BAAU,CAAC,IAAI;wBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;yBAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,4BAAU,CAAC,GAAG;wBAClC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;yBAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,4BAAU,CAAC,MAAM;wBACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;;wBAEjC,MAAM;iBACb;gBAAC,OAAO,KAAK,EACd;oBACI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBACnC;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IACD,SAAS;IACO,UAAU;;YAEtB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;KAAA;IACK,SAAS;;YAEX,IAAI,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAC3C;gBACI,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAQ,CAAC;gBACvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChD,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClC,IAAI,QAAQ,YAAY,+BAAc;oBAClC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;aAC3D;YACD,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IACD,UAAU;IACJ,QAAQ;;YAEV,IAAI,IAAI,CAAC,UAAU,EACnB;gBACI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;aAC3B;YACD,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;KAAA;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,YAAY,GAAG,GAAG;YAC5B,IAAI,EAAE,qDAAqD;YAC3D,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,UAAU;SAC7C,CAAC,CAAC;IACP,CAAC;CACJ;AA/RD,0CA+RC"}
|
package/package.json
CHANGED
package/src/BaseApplication.ts
CHANGED
|
@@ -15,33 +15,46 @@ import { BaseController } from './BaseController';
|
|
|
15
15
|
export abstract class BaseApplication<D extends BaseDatabase>
|
|
16
16
|
{
|
|
17
17
|
private linkLoader?: () => Promise<void>;
|
|
18
|
+
private page_dir: string;
|
|
19
|
+
private swagger_dir: string;
|
|
20
|
+
private page_path: string;
|
|
21
|
+
private swagger_path: string;
|
|
18
22
|
private links: BaseApplicationLink[] = [];
|
|
23
|
+
protected base_path: string;
|
|
19
24
|
protected pkg: PackageService;
|
|
20
25
|
protected title: string;
|
|
21
26
|
protected description: string;
|
|
22
27
|
protected logo: string;
|
|
23
28
|
protected version: string;
|
|
24
|
-
protected base_path: string;
|
|
25
|
-
protected swagger_path: string;
|
|
26
|
-
protected swagger_dir: string;
|
|
27
29
|
protected mode!: string;
|
|
28
30
|
public express!: express.Express;
|
|
29
31
|
public database!: D;
|
|
30
32
|
public logger: ILogger;
|
|
31
|
-
constructor(base_path: string
|
|
33
|
+
constructor(base_path: string)
|
|
32
34
|
{
|
|
35
|
+
this.base_path = base_path;
|
|
36
|
+
this.page_dir = "./page";
|
|
37
|
+
this.swagger_dir = "./swagger";
|
|
38
|
+
this.page_path = base_path + "/page";
|
|
39
|
+
this.swagger_path = this.page_dir + "/swagger";
|
|
33
40
|
this.pkg = PackageService.getMain();
|
|
34
41
|
this.title = this.pkg?.getTitle() ?? "";
|
|
35
42
|
this.description = this.pkg?.getDescription() ?? "";
|
|
36
43
|
this.logo = this.pkg?.getLogo() ?? "";
|
|
37
44
|
this.version = this.pkg?.getVersion() ?? "";
|
|
38
|
-
this.base_path = base_path;
|
|
39
|
-
this.swagger_path = swagger_path ?? (base_path + "/swagger");
|
|
40
|
-
this.swagger_dir = "./swagger";
|
|
41
45
|
this.mode = new EnvService("SERVER_MODE", false).getString("api").toLowerCase();
|
|
42
46
|
this.logger = this.getLogger();
|
|
43
47
|
this.addLink = this.addLink.bind(this);
|
|
44
48
|
this.addSwaggerLink = this.addSwaggerLink.bind(this);
|
|
49
|
+
|
|
50
|
+
// create folders
|
|
51
|
+
let pkg = PackageService.getMain();
|
|
52
|
+
this.page_dir = path.join(path.dirname(pkg.getPath()), this.page_dir);
|
|
53
|
+
this.swagger_dir = path.join(path.dirname(pkg.getPath()), this.swagger_dir);
|
|
54
|
+
if (!fs.existsSync(this.page_dir))
|
|
55
|
+
fs.mkdirSync(this.page_dir);
|
|
56
|
+
if (!fs.existsSync(this.swagger_dir))
|
|
57
|
+
fs.mkdirSync(this.swagger_dir, { recursive: true });
|
|
45
58
|
}
|
|
46
59
|
protected abstract getDatabase(): D;
|
|
47
60
|
protected abstract getLogger(): ILogger;
|
|
@@ -60,7 +73,8 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
60
73
|
await this.createSwagger();
|
|
61
74
|
await this.startSwagger();
|
|
62
75
|
await this.startHomePage();
|
|
63
|
-
await this.
|
|
76
|
+
await this.createOtherPages();
|
|
77
|
+
await this.startOtherPages();
|
|
64
78
|
}
|
|
65
79
|
await this.startOthers();
|
|
66
80
|
}
|
|
@@ -98,14 +112,6 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
98
112
|
if (!process.env.NAMIRASOFT_MUTE)
|
|
99
113
|
{
|
|
100
114
|
this.express = express();
|
|
101
|
-
// this.express.use((req, res, next) =>
|
|
102
|
-
// {
|
|
103
|
-
// let excludes: string[] = [];
|
|
104
|
-
// if (excludes.includes(req.path))
|
|
105
|
-
// next();
|
|
106
|
-
// else
|
|
107
|
-
// express.json({ limit: '100kb' })(req, res, next);
|
|
108
|
-
// });
|
|
109
115
|
// Express
|
|
110
116
|
this.express.use(express.static('static'));
|
|
111
117
|
// Cors
|
|
@@ -125,8 +131,6 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
125
131
|
let schema = await this.getSchema();
|
|
126
132
|
let builder = new SwaggerApplicationBuilder(schema);
|
|
127
133
|
let result = await builder.run();
|
|
128
|
-
if (!fs.existsSync(this.swagger_dir))
|
|
129
|
-
fs.mkdirSync(this.swagger_dir, { recursive: true });
|
|
130
134
|
for (let name of Object.keys(result.controllers))
|
|
131
135
|
{
|
|
132
136
|
const lines = result.controllers[name];
|
|
@@ -179,20 +183,18 @@ export abstract class BaseApplication<D extends BaseDatabase>
|
|
|
179
183
|
});
|
|
180
184
|
}
|
|
181
185
|
protected abstract handleHomePage(_: express.Request,__: express.Response): Promise<void>;
|
|
182
|
-
protected async
|
|
186
|
+
protected async createOtherPages(): Promise<void>
|
|
187
|
+
{ }
|
|
188
|
+
protected async startOtherPages(): Promise<void>
|
|
183
189
|
{
|
|
184
|
-
let
|
|
185
|
-
const pagesPath = path.join(path.dirname(pkg.getPath()), './pages');
|
|
186
|
-
if (!fs.existsSync(pagesPath))
|
|
187
|
-
fs.mkdirSync(pagesPath);
|
|
188
|
-
let files = fs.readdirSync(pagesPath);
|
|
190
|
+
let files = fs.readdirSync(this.page_dir);
|
|
189
191
|
for (let i = 0; i < files.length; i++) {
|
|
190
192
|
const file = files[i];
|
|
191
193
|
if(file.endsWith(".html"))
|
|
192
194
|
{
|
|
193
|
-
const fullPath = path.join(
|
|
195
|
+
const fullPath = path.join(this.page_dir, file);
|
|
194
196
|
let name = path.parse(fullPath).name;
|
|
195
|
-
this.express.get(this.
|
|
197
|
+
this.express.get(this.page_path + "/" + name, (_, res) =>
|
|
196
198
|
{
|
|
197
199
|
fs.readFile(fullPath, 'utf8', async (err: any, data: string) =>
|
|
198
200
|
{
|