not-node 5.0.22 → 5.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/.eslintrc.json +1 -1
- package/bin/not-deploy.js +52 -0
- package/index.js +21 -19
- package/package.json +1 -1
- package/src/app.js +61 -58
- package/src/auth/abstract.js +17 -19
- package/src/auth/const.js +8 -12
- package/src/auth/fields.js +143 -124
- package/src/auth/index.js +14 -14
- package/src/auth/roles.js +64 -63
- package/src/auth/routes.js +89 -54
- package/src/auth/rules.js +63 -63
- package/src/auth/session.js +60 -62
- package/src/bootstrap/form.js +13 -13
- package/src/bootstrap/logic.js +45 -41
- package/src/bootstrap/model.js +14 -17
- package/src/bootstrap/route.js +132 -53
- package/src/common.js +86 -79
- package/src/core/fields/ID.js +6 -6
- package/src/core/fields/__closed.js +3 -3
- package/src/core/fields/__latest.js +3 -3
- package/src/core/fields/__version.js +3 -3
- package/src/core/fields/__versions.js +3 -3
- package/src/core/fields/_id.js +6 -6
- package/src/core/fields/active.js +9 -9
- package/src/core/fields/codeName.js +9 -9
- package/src/core/fields/createdAt.js +17 -17
- package/src/core/fields/default.js +9 -9
- package/src/core/fields/description.js +11 -11
- package/src/core/fields/email.js +9 -9
- package/src/core/fields/enabled.js +9 -9
- package/src/core/fields/expiredAt.js +16 -16
- package/src/core/fields/height.js +11 -11
- package/src/core/fields/ip.js +10 -10
- package/src/core/fields/objectId.js +10 -10
- package/src/core/fields/owner.js +13 -13
- package/src/core/fields/ownerModel.js +11 -11
- package/src/core/fields/price.js +11 -11
- package/src/core/fields/requiredObject.js +10 -10
- package/src/core/fields/session.js +10 -10
- package/src/core/fields/size.js +11 -11
- package/src/core/fields/telephone.js +9 -9
- package/src/core/fields/title.js +15 -15
- package/src/core/fields/updatedAt.js +17 -17
- package/src/core/fields/userId.js +11 -12
- package/src/core/fields/uuid.js +11 -11
- package/src/core/fields/validators/email.js +6 -4
- package/src/core/fields/validators/owner.js +6 -4
- package/src/core/fields/width.js +11 -11
- package/src/domain.js +435 -431
- package/src/env.js +23 -23
- package/src/error.js +20 -23
- package/src/exceptions/db.js +23 -0
- package/src/exceptions/http.js +43 -0
- package/src/fields/index.js +106 -111
- package/src/form/fabric.js +19 -24
- package/src/form/form.js +195 -186
- package/src/form/index.js +2 -2
- package/src/generic/index.js +2 -0
- package/src/generic/logic.js +595 -0
- package/src/generic/route.js +76 -0
- package/src/init/additional.js +7 -7
- package/src/init/app.js +75 -68
- package/src/init/bodyparser.js +14 -14
- package/src/init/compression.js +6 -7
- package/src/init/core.js +12 -12
- package/src/init/cors.js +22 -24
- package/src/init/db/index.js +41 -43
- package/src/init/db/ioredis.js +28 -20
- package/src/init/db/mongoose.js +42 -32
- package/src/init/db/redis.js +59 -48
- package/src/init/env.js +44 -36
- package/src/init/express.js +18 -21
- package/src/init/fileupload.js +8 -10
- package/src/init/http.js +65 -47
- package/src/init/index.js +141 -148
- package/src/init/informer.js +7 -9
- package/src/init/methodoverride.js +4 -6
- package/src/init/middleware.js +23 -26
- package/src/init/modules.js +4 -4
- package/src/init/monitoring.js +8 -8
- package/src/init/rateLimiter.js +53 -45
- package/src/init/routes.js +67 -69
- package/src/init/security.js +37 -33
- package/src/init/sequence.js +111 -107
- package/src/init/sequence.standart.js +54 -56
- package/src/init/sessions/index.js +21 -21
- package/src/init/sessions/mongoose.js +49 -36
- package/src/init/sessions/redis.js +28 -27
- package/src/init/static.js +53 -40
- package/src/init/template.js +17 -17
- package/src/lib.js +230 -200
- package/src/manifest/batchRunner.js +26 -25
- package/src/manifest/initializator/forms.js +24 -24
- package/src/manifest/initializator/index.js +8 -10
- package/src/manifest/initializator/manifests.js +45 -42
- package/src/manifest/initializator/models.js +37 -34
- package/src/manifest/manifest.filter.js +130 -97
- package/src/manifest/manifest.js +103 -77
- package/src/manifest/module.js +350 -360
- package/src/manifest/registrator/fields.js +90 -85
- package/src/manifest/registrator/forms.js +47 -47
- package/src/manifest/registrator/index.js +14 -16
- package/src/manifest/registrator/locales.js +17 -16
- package/src/manifest/registrator/logics.js +66 -64
- package/src/manifest/registrator/models.js +64 -62
- package/src/manifest/registrator/routes.js +171 -132
- package/src/manifest/registrator/routes.ws.js +109 -103
- package/src/manifest/route.js +216 -161
- package/src/model/buildValidator.js +53 -42
- package/src/model/default.js +304 -286
- package/src/model/enrich.js +69 -61
- package/src/model/increment.js +124 -137
- package/src/model/proto.js +179 -148
- package/src/model/routine.js +85 -76
- package/src/model/utils.js +33 -0
- package/src/model/versioning.js +148 -130
- package/src/obsolete.js +12 -8
- package/src/parser.js +29 -22
- package/src/repos.js +29 -31
- package/src/rollup.js +75 -65
- package/src/shell.helpers.js +28 -28
- package/static.js +31 -0
- package/src/generic/router.js +0 -16
- package/src/manifest/module.models.js +0 -0
- package/src/manifest/module.status.js +0 -0
package/src/init/env.js
CHANGED
|
@@ -1,42 +1,50 @@
|
|
|
1
|
-
const log = require(
|
|
2
|
-
const ADDS = require(
|
|
1
|
+
const log = require("not-log")(module, "not-node//init");
|
|
2
|
+
const ADDS = require("./additional");
|
|
3
3
|
|
|
4
|
-
module.exports = class InitENV{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return parseInt(config.get('proxy:port') || config.get('port'));
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
static getFullServerName(config){
|
|
11
|
-
let name = '';
|
|
12
|
-
if (config.get('proxy:secure') === true){
|
|
13
|
-
name='https://';
|
|
14
|
-
}else{
|
|
15
|
-
name='http://';
|
|
16
|
-
}
|
|
17
|
-
name+=config.get('host');
|
|
18
|
-
let proxyPort = InitENV.getProxyPort(config);
|
|
19
|
-
if(proxyPort !== 80){
|
|
20
|
-
name+= (':'+proxyPort);
|
|
4
|
+
module.exports = class InitENV {
|
|
5
|
+
static getProxyPort(config) {
|
|
6
|
+
return parseInt(config.get("proxy:port") || config.get("port"));
|
|
21
7
|
}
|
|
22
|
-
return name;
|
|
23
|
-
}
|
|
24
8
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
9
|
+
static getFullServerName(config) {
|
|
10
|
+
let name = "";
|
|
11
|
+
if (config.get("proxy:secure") === true) {
|
|
12
|
+
name = "https://";
|
|
13
|
+
} else {
|
|
14
|
+
name = "http://";
|
|
15
|
+
}
|
|
16
|
+
name += config.get("host");
|
|
17
|
+
let proxyPort = InitENV.getProxyPort(config);
|
|
18
|
+
if (proxyPort !== 80) {
|
|
19
|
+
name += ":" + proxyPort;
|
|
20
|
+
}
|
|
21
|
+
return name;
|
|
38
22
|
}
|
|
39
|
-
await ADDS.run('env.post', {config, options, master});
|
|
40
|
-
}
|
|
41
23
|
|
|
24
|
+
async run({ config, options, master }) {
|
|
25
|
+
log.info("Setting up server environment variables...");
|
|
26
|
+
await ADDS.run("env.pre", { config, options, master });
|
|
27
|
+
config.set(
|
|
28
|
+
"staticPath",
|
|
29
|
+
master.getAbsolutePath(config.get("path:static") || "static")
|
|
30
|
+
);
|
|
31
|
+
config.set(
|
|
32
|
+
"modulesPath",
|
|
33
|
+
master.getAbsolutePath(config.get("path:modules") || "modules")
|
|
34
|
+
);
|
|
35
|
+
config.set(
|
|
36
|
+
"dbDumpsPath",
|
|
37
|
+
master.getAbsolutePath(
|
|
38
|
+
config.get("path:dbDumps") || "../../db.dumps"
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
config.set("appPath", options.pathToApp);
|
|
42
|
+
config.set("npmPath", options.pathToNPM);
|
|
43
|
+
config.set("fullServerName", InitENV.getFullServerName(config));
|
|
44
|
+
if (config.get("path:ws")) {
|
|
45
|
+
log.log("wsPath", master.getAbsolutePath(config.get("path:ws")));
|
|
46
|
+
config.set("wsPath", master.getAbsolutePath(config.get("path:ws")));
|
|
47
|
+
}
|
|
48
|
+
await ADDS.run("env.post", { config, options, master });
|
|
49
|
+
}
|
|
42
50
|
};
|
package/src/init/express.js
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
|
+
const emit = require("./additional").run;
|
|
2
|
+
const Log = require("not-log")(module, "not-node//init");
|
|
1
3
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Log.log(req.ip, req.method, req.url);
|
|
10
|
-
return next();
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
async run({options, config, master}) {
|
|
15
|
-
Log.info('Init express app...');
|
|
16
|
-
await emit('express.pre', {options, config, master});
|
|
17
|
-
//express
|
|
18
|
-
const express = require('express');
|
|
19
|
-
master.setServer(express());
|
|
20
|
-
InitExpress.requestLogging({options, config, master});
|
|
21
|
-
await emit('express.post', {options, config, master});
|
|
22
|
-
}
|
|
4
|
+
module.exports = class InitExpress {
|
|
5
|
+
static requestLogging({ /*config, options, */ master }) {
|
|
6
|
+
master.getServer().use((req, res, next) => {
|
|
7
|
+
Log.log(req.ip, req.method, req.url);
|
|
8
|
+
return next();
|
|
9
|
+
});
|
|
10
|
+
}
|
|
23
11
|
|
|
12
|
+
async run({ options, config, master }) {
|
|
13
|
+
Log.info("Init express app...");
|
|
14
|
+
await emit("express.pre", { options, config, master });
|
|
15
|
+
//express
|
|
16
|
+
const express = require("express");
|
|
17
|
+
master.setServer(express());
|
|
18
|
+
InitExpress.requestLogging({ options, config, master });
|
|
19
|
+
await emit("express.post", { options, config, master });
|
|
20
|
+
}
|
|
24
21
|
};
|
package/src/init/fileupload.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
module.exports = class InitFileupload {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
);
|
|
11
|
-
}
|
|
2
|
+
async run({ /*options, config,*/ master }) {
|
|
3
|
+
const fileUpload = require("express-fileupload");
|
|
4
|
+
master.getServer().use(
|
|
5
|
+
fileUpload({
|
|
6
|
+
createParentPath: true,
|
|
7
|
+
})
|
|
8
|
+
);
|
|
9
|
+
}
|
|
12
10
|
};
|
package/src/init/http.js
CHANGED
|
@@ -1,55 +1,73 @@
|
|
|
1
|
-
const log = require(
|
|
2
|
-
const fs = require(
|
|
3
|
-
const ADDS = require(
|
|
1
|
+
const log = require("not-log")(module, "not-node//init");
|
|
2
|
+
const fs = require("fs");
|
|
3
|
+
const ADDS = require("./additional");
|
|
4
4
|
|
|
5
|
-
module.exports = class InitHTTP{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
5
|
+
module.exports = class InitHTTP {
|
|
6
|
+
listenPromise({ config, master }) {
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
master.getHTTPServer().listen(config.get("port"), (err) => {
|
|
9
|
+
if (err) {
|
|
10
|
+
reject(err);
|
|
11
|
+
}
|
|
12
|
+
log.info(
|
|
13
|
+
"Server listening on port " +
|
|
14
|
+
config.get("port") +
|
|
15
|
+
"." +
|
|
16
|
+
(InitHTTP.isSecure({ config })
|
|
17
|
+
? " For secure connections"
|
|
18
|
+
: "")
|
|
19
|
+
);
|
|
20
|
+
resolve();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
static getSSLOptions({ config }) {
|
|
26
|
+
return {
|
|
27
|
+
key: fs.readFileSync(config.get("ssl:keys:private"), {
|
|
28
|
+
encoding: "utf-8",
|
|
29
|
+
}),
|
|
30
|
+
cert: fs.readFileSync(config.get("ssl:keys:cert"), {
|
|
31
|
+
encoding: "utf-8",
|
|
32
|
+
}), //fullchain
|
|
33
|
+
ca: fs.readFileSync(config.get("ssl:keys:chain"), {
|
|
34
|
+
encoding: "utf-8",
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
async runHTTPS({ config, master }) {
|
|
40
|
+
log.info("Setting up HTTPS server...");
|
|
41
|
+
const https = require("https");
|
|
42
|
+
master.getServer().set("protocol", "https");
|
|
43
|
+
master.setHTTPServer(
|
|
44
|
+
https.createServer(
|
|
45
|
+
InitHTTP.getSSLOptions({ config }),
|
|
46
|
+
master.getServer()
|
|
47
|
+
)
|
|
48
|
+
);
|
|
49
|
+
await this.listenPromise({ config, master });
|
|
50
|
+
}
|
|
40
51
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
52
|
+
async runHTTP({ config, master }) {
|
|
53
|
+
log.info("Setting up HTTP server...");
|
|
54
|
+
const http = require("http");
|
|
55
|
+
master.getServer().set("protocol", "http");
|
|
56
|
+
master.setHTTPServer(http.createServer(master.getServer()));
|
|
57
|
+
await this.listenPromise({ config, master });
|
|
58
|
+
}
|
|
44
59
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (InitHTTP.isSecure({config})) {
|
|
48
|
-
await this.runHTTPS({options, config, master});
|
|
49
|
-
} else {
|
|
50
|
-
await this.runHTTP({options, config, master});
|
|
60
|
+
static isSecure({ config }) {
|
|
61
|
+
return config.get("ssl:enabled") === true;
|
|
51
62
|
}
|
|
52
|
-
await ADDS.run('http.post', {options, config, master});
|
|
53
|
-
}
|
|
54
63
|
|
|
64
|
+
async run({ options, config, master }) {
|
|
65
|
+
await ADDS.run("http.pre", { options, config, master });
|
|
66
|
+
if (InitHTTP.isSecure({ config })) {
|
|
67
|
+
await this.runHTTPS({ options, config, master });
|
|
68
|
+
} else {
|
|
69
|
+
await this.runHTTP({ options, config, master });
|
|
70
|
+
}
|
|
71
|
+
await ADDS.run("http.post", { options, config, master });
|
|
72
|
+
}
|
|
55
73
|
};
|
package/src/init/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
//
|
|
2
|
-
const os = require(
|
|
3
|
-
const path = require(
|
|
4
|
-
const logger = require(
|
|
5
|
-
const log = logger(module,
|
|
2
|
+
const os = require("os");
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const logger = require("not-log");
|
|
5
|
+
const log = logger(module, "not-node:Init");
|
|
6
6
|
|
|
7
|
-
const Env = require(
|
|
7
|
+
const Env = require("../env");
|
|
8
8
|
//
|
|
9
|
-
const ADDS = require(
|
|
9
|
+
const ADDS = require("./additional");
|
|
10
10
|
//
|
|
11
|
-
const InitSequence = require(
|
|
12
|
-
const STANDART_INIT_SEQUENCE = require(
|
|
11
|
+
const InitSequence = require("./sequence.js");
|
|
12
|
+
const STANDART_INIT_SEQUENCE = require("./sequence.standart.js");
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @example <caption>Application initialization</caption>
|
|
@@ -27,147 +27,140 @@ const STANDART_INIT_SEQUENCE = require('./sequence.standart.js');
|
|
|
27
27
|
* .expose(ExpressApp);
|
|
28
28
|
**/
|
|
29
29
|
class Init {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
});
|
|
159
|
-
log.info('Application initalization finished');
|
|
160
|
-
} catch (e) {
|
|
161
|
-
Init.throwError(e.message, 1);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
static throwError(errMsg = 'Fatal error', errCode = 1) {
|
|
166
|
-
log.error(errMsg);
|
|
167
|
-
log.log(`Exit process...with code ${errCode}`);
|
|
168
|
-
throw new Error(errMsg);
|
|
169
|
-
}
|
|
30
|
+
static options = false;
|
|
31
|
+
static manifest = false;
|
|
32
|
+
static config = false;
|
|
33
|
+
static mongoose = false;
|
|
34
|
+
static notApp = false;
|
|
35
|
+
static server = false;
|
|
36
|
+
static httpServer = false;
|
|
37
|
+
static WSServer = false;
|
|
38
|
+
static WSClient = false;
|
|
39
|
+
|
|
40
|
+
static getAbsolutePath(subPath) {
|
|
41
|
+
return path.resolve(Init.options.pathToApp, subPath);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static setManifest(manifest) {
|
|
45
|
+
Init.manifest = manifest;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static getManifest() {
|
|
49
|
+
return Init.manifest;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static setMongoose(val) {
|
|
53
|
+
Init.mongoose = val;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
static getMongoose() {
|
|
57
|
+
return Init.mongoose;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static setServer(val) {
|
|
61
|
+
Init.server = val;
|
|
62
|
+
return Init;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static getServer() {
|
|
66
|
+
return Init.server;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static setHTTPServer(val) {
|
|
70
|
+
Init.httpServer = val;
|
|
71
|
+
return Init;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static getHTTPServer() {
|
|
75
|
+
return Init.httpServer;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static setEnv(key, val) {
|
|
79
|
+
Env.setEnv(key, val);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
static getEnv(key) {
|
|
83
|
+
return Env.getEnv(key);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
static getApp() {
|
|
87
|
+
return Init.notApp;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static setApp(val) {
|
|
91
|
+
Init.notApp = val;
|
|
92
|
+
return Init;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
static initConfig(config = false) {
|
|
96
|
+
if (!config) {
|
|
97
|
+
Init.config = require("not-config").createReader();
|
|
98
|
+
} else {
|
|
99
|
+
Init.config = config;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
static getConfig() {
|
|
104
|
+
return Init.config;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static printOutManifest = () => {
|
|
108
|
+
log.debug("Manifest:");
|
|
109
|
+
log.debug(JSON.stringify(Init.notApp.getManifest(), null, 4));
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Initalization of Application
|
|
114
|
+
*
|
|
115
|
+
* @param {Object} params hash with few possible object
|
|
116
|
+
* @param {Object} params.config nconf like reader {get:(key)=>any, set:(key, value)=>void}
|
|
117
|
+
* @param {Object} params.options paths infrastructure options
|
|
118
|
+
* @param {Object} params.manifest application manifest
|
|
119
|
+
* @param {Object} params.additional pre/mid/post actions for every major step of initialization {stepName: {pre: async()=>void, post: async()=>void, [key: string]=> async()=>void}}
|
|
120
|
+
**/
|
|
121
|
+
|
|
122
|
+
static async run({ config, options, manifest, additional }) {
|
|
123
|
+
try {
|
|
124
|
+
log.info("Kick start app..." + os.platform() + " " + os.arch());
|
|
125
|
+
ADDS.init(additional);
|
|
126
|
+
const initSequence = new InitSequence(STANDART_INIT_SEQUENCE);
|
|
127
|
+
await ADDS.run("pre", {
|
|
128
|
+
config,
|
|
129
|
+
options,
|
|
130
|
+
manifest,
|
|
131
|
+
additional,
|
|
132
|
+
initSequence, //giving a chance to change init sequence
|
|
133
|
+
});
|
|
134
|
+
//setting basic resources
|
|
135
|
+
Init.options = options; // pathToApp, pathToNPM
|
|
136
|
+
Init.setManifest(manifest);
|
|
137
|
+
//adopting provided config store or initializing own
|
|
138
|
+
Init.initConfig(config);
|
|
139
|
+
//creating context for other init runners
|
|
140
|
+
const context = {
|
|
141
|
+
config: Init.getConfig(), //access to config
|
|
142
|
+
options, //options
|
|
143
|
+
master: Init, //this class
|
|
144
|
+
};
|
|
145
|
+
//running all prepared initalizers with current context
|
|
146
|
+
await initSequence.run(context);
|
|
147
|
+
await ADDS.run("post", {
|
|
148
|
+
config,
|
|
149
|
+
options,
|
|
150
|
+
manifest,
|
|
151
|
+
master: Init,
|
|
152
|
+
});
|
|
153
|
+
log.info("Application initalization finished");
|
|
154
|
+
} catch (e) {
|
|
155
|
+
Init.throwError(e.message, 1);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
170
158
|
|
|
159
|
+
static throwError(errMsg = "Fatal error", errCode = 1) {
|
|
160
|
+
log.error(errMsg);
|
|
161
|
+
log.log(`Exit process...with code ${errCode}`);
|
|
162
|
+
throw new Error(errMsg);
|
|
163
|
+
}
|
|
171
164
|
}
|
|
172
165
|
|
|
173
166
|
module.exports.Init = Init;
|
package/src/init/informer.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
const log = require(
|
|
1
|
+
const log = require("not-log")(module, "not-node//init");
|
|
2
2
|
|
|
3
|
-
module.exports = class InitInformer{
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
master.getApp().informer = new Inform();
|
|
10
|
-
}
|
|
3
|
+
module.exports = class InitInformer {
|
|
4
|
+
async run({ master }) {
|
|
5
|
+
log.log("try to create informer");
|
|
6
|
+
const { Inform } = require("not-inform");
|
|
7
|
+
master.getApp().informer = new Inform();
|
|
8
|
+
}
|
|
11
9
|
};
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
module.exports = class InitMethodOverride {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
master.getServer().use(methodOverride());
|
|
7
|
-
}
|
|
2
|
+
async run({ /*options, config,*/ master }) {
|
|
3
|
+
const methodOverride = require("method-override");
|
|
4
|
+
master.getServer().use(methodOverride());
|
|
5
|
+
}
|
|
8
6
|
};
|