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/app.js
CHANGED
|
@@ -1,80 +1,87 @@
|
|
|
1
|
-
const notAppConstructor = require(
|
|
2
|
-
const ENV =
|
|
3
|
-
const path = require(
|
|
4
|
-
const logger = require(
|
|
5
|
-
const log = logger(module,
|
|
6
|
-
const {
|
|
7
|
-
notErrorReporter
|
|
8
|
-
} = require('not-error');
|
|
1
|
+
const notAppConstructor = require("../app.js");
|
|
2
|
+
const ENV = process.env.NODE_ENV || "development";
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const logger = require("not-log");
|
|
5
|
+
const log = logger(module, "not-node//init");
|
|
6
|
+
const { notErrorReporter } = require("not-error");
|
|
9
7
|
|
|
10
|
-
const emit = require(
|
|
8
|
+
const emit = require("./additional").run;
|
|
11
9
|
|
|
12
|
-
module.exports = class InitApp{
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
module.exports = class InitApp {
|
|
11
|
+
static AppConstructor = notAppConstructor;
|
|
12
|
+
static ReporterConstructor = notErrorReporter;
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
await emit('app.setEnv.pre', {config, options, master});
|
|
24
|
-
master.setEnv('hostname', config.get('hostname'));
|
|
25
|
-
master.setEnv('server', `https://` + config.get('host'));
|
|
26
|
-
master.setEnv('appPath', config.get('appPath'));
|
|
27
|
-
master.setEnv('name', master.getManifest().name);
|
|
28
|
-
master.setEnv('fullServerName', config.get('fullServerName'));
|
|
29
|
-
master.setEnv('dbDumpsPath', config.get('dbDumpsPath'));
|
|
30
|
-
master.setEnv('rolesPriority', master.getManifest().targets.server.roles);
|
|
31
|
-
master.getApp().ENV = ENV;
|
|
32
|
-
await emit('app.setEnv.post', {config, options, master});
|
|
33
|
-
}
|
|
14
|
+
static async createApp({ config, options, master }) {
|
|
15
|
+
await emit("app.create.pre", { config, options, master });
|
|
16
|
+
master.setApp(
|
|
17
|
+
new InitApp.AppConstructor({ mongoose: master.getMongoose() })
|
|
18
|
+
);
|
|
19
|
+
await emit("app.create.post", { config, options, master });
|
|
20
|
+
}
|
|
34
21
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
22
|
+
static async setAppEnvs({ config, options, master }) {
|
|
23
|
+
await emit("app.setEnv.pre", { config, options, master });
|
|
24
|
+
master.setEnv("hostname", config.get("hostname"));
|
|
25
|
+
master.setEnv("server", `https://` + config.get("host"));
|
|
26
|
+
master.setEnv("appPath", config.get("appPath"));
|
|
27
|
+
master.setEnv("name", master.getManifest().name);
|
|
28
|
+
master.setEnv("fullServerName", config.get("fullServerName"));
|
|
29
|
+
master.setEnv("dbDumpsPath", config.get("dbDumpsPath"));
|
|
30
|
+
master.setEnv(
|
|
31
|
+
"rolesPriority",
|
|
32
|
+
master.getManifest().targets.server.roles
|
|
33
|
+
);
|
|
34
|
+
master.getApp().ENV = ENV;
|
|
35
|
+
await emit("app.setEnv.post", { config, options, master });
|
|
36
|
+
}
|
|
40
37
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
config.get('importModulesFromNPM').forEach((modName) => {
|
|
46
|
-
master.getApp().importModuleFrom(path.join(config.get('npmPath'), modName), modName);
|
|
47
|
-
});
|
|
38
|
+
static async initCore({ config, options, master }) {
|
|
39
|
+
await emit("app.initCore.pre", { config, options, master });
|
|
40
|
+
master.getApp().importModuleFrom(path.join(__dirname, "../core"));
|
|
41
|
+
await emit("app.initCore.post", { config, options, master });
|
|
48
42
|
}
|
|
49
|
-
await emit('app.importModules.post', {config, options, master});
|
|
50
|
-
}
|
|
51
43
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
44
|
+
static async importModules({ config, options, master }) {
|
|
45
|
+
await emit("app.importModules.pre", { config, options, master });
|
|
46
|
+
master.getApp().importModulesFrom(config.get("modulesPath"));
|
|
47
|
+
if (Array.isArray(config.get("importModulesFromNPM"))) {
|
|
48
|
+
config.get("importModulesFromNPM").forEach((modName) => {
|
|
49
|
+
master
|
|
50
|
+
.getApp()
|
|
51
|
+
.importModuleFrom(
|
|
52
|
+
path.join(config.get("npmPath"), modName),
|
|
53
|
+
modName
|
|
54
|
+
);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
await emit("app.importModules.post", { config, options, master });
|
|
62
58
|
}
|
|
63
|
-
}
|
|
64
59
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
master.throwError(e.message, 1);
|
|
60
|
+
static async createReporter({ config, /* options,*/ master }) {
|
|
61
|
+
try {
|
|
62
|
+
master.getApp().reporter = new InitApp.ReporterConstructor({
|
|
63
|
+
origin: {
|
|
64
|
+
server: config.get("host"),
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
master.getApp().logger = logger(module, "notApplication");
|
|
68
|
+
} catch (e) {
|
|
69
|
+
log.error(e);
|
|
70
|
+
}
|
|
77
71
|
}
|
|
78
|
-
}
|
|
79
72
|
|
|
73
|
+
async run({ config, options, master }) {
|
|
74
|
+
try {
|
|
75
|
+
log.info("Init not-app...");
|
|
76
|
+
await emit("app.pre", { config, options, master });
|
|
77
|
+
await InitApp.createApp({ config, options, master });
|
|
78
|
+
await InitApp.setAppEnvs({ config, options, master });
|
|
79
|
+
await InitApp.initCore({ config, options, master });
|
|
80
|
+
await InitApp.importModules({ config, options, master });
|
|
81
|
+
await InitApp.createReporter({ config, options, master });
|
|
82
|
+
await emit("app.post", { config, options, master });
|
|
83
|
+
} catch (e) {
|
|
84
|
+
master.throwError(e.message, 1);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
80
87
|
};
|
package/src/init/bodyparser.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
module.exports = class InitBodyparser{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
module.exports = class InitBodyparser {
|
|
2
|
+
async run({ /*options, config,*/ master }) {
|
|
3
|
+
//HTTP input formating
|
|
4
|
+
const bodyParser = require("body-parser");
|
|
5
|
+
master.getServer().use(bodyParser.json({ limit: "150mb" }));
|
|
6
|
+
// for parsing application/json
|
|
7
|
+
master.getServer().use(
|
|
8
|
+
bodyParser.urlencoded({
|
|
9
|
+
limit: "150mb",
|
|
10
|
+
extended: true,
|
|
11
|
+
})
|
|
12
|
+
);
|
|
13
|
+
// for parsing application/x-www-form-urlencode
|
|
14
|
+
}
|
|
15
15
|
};
|
package/src/init/compression.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
1
|
+
module.exports = class InitCompression {
|
|
2
|
+
async run({ master /*, config*/ }) {
|
|
3
|
+
//compress output
|
|
4
|
+
const compression = require("compression");
|
|
5
|
+
master.getServer().use(compression());
|
|
6
|
+
}
|
|
8
7
|
};
|
package/src/init/core.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
const path = require(
|
|
2
|
-
const Fields = require(
|
|
3
|
-
const notLocale = require(
|
|
1
|
+
const path = require("path");
|
|
2
|
+
const Fields = require("../fields");
|
|
3
|
+
const notLocale = require("not-locale");
|
|
4
4
|
|
|
5
|
-
module.exports = class InitCore{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
module.exports = class InitCore {
|
|
6
|
+
static paths = {
|
|
7
|
+
fields: path.resolve(__dirname, "../core/fields"),
|
|
8
|
+
locales: path.resolve(__dirname, "../core/locales"),
|
|
9
|
+
};
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
async run() {
|
|
12
|
+
Fields.importFromDir(InitCore.paths.fields);
|
|
13
|
+
await notLocale.fromDir(InitCore.paths.locales, "core");
|
|
14
|
+
}
|
|
15
15
|
};
|
package/src/init/cors.js
CHANGED
|
@@ -1,27 +1,25 @@
|
|
|
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 InitCORS{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
async run({config, options, master}) {
|
|
13
|
-
await ADDS.run('cors.pre', { config, options, master });
|
|
14
|
-
const cors = require('cors');
|
|
15
|
-
log.info('Setting up CORS rules...');
|
|
16
|
-
const whitelist = config.get('cors');
|
|
17
|
-
log.info('Whitelist: ', whitelist.join(', '));
|
|
18
|
-
let corsOptions = {
|
|
19
|
-
origin: InitCORS.getOriginFilter(whitelist),
|
|
20
|
-
credentials: true
|
|
21
|
-
};
|
|
22
|
-
log.info('CORS options', corsOptions);
|
|
23
|
-
master.getServer().use(cors(corsOptions));
|
|
24
|
-
await ADDS.run('cors.post', { config, options, master });
|
|
25
|
-
}
|
|
4
|
+
module.exports = class InitCORS {
|
|
5
|
+
static getOriginFilter(whitelist) {
|
|
6
|
+
return (origin, callback) => {
|
|
7
|
+
callback(null, whitelist.includes(origin));
|
|
8
|
+
};
|
|
9
|
+
}
|
|
26
10
|
|
|
11
|
+
async run({ config, options, master }) {
|
|
12
|
+
await ADDS.run("cors.pre", { config, options, master });
|
|
13
|
+
const cors = require("cors");
|
|
14
|
+
log.info("Setting up CORS rules...");
|
|
15
|
+
const whitelist = config.get("cors");
|
|
16
|
+
log.info("Whitelist: ", whitelist.join(", "));
|
|
17
|
+
let corsOptions = {
|
|
18
|
+
origin: InitCORS.getOriginFilter(whitelist),
|
|
19
|
+
credentials: true,
|
|
20
|
+
};
|
|
21
|
+
log.info("CORS options", corsOptions);
|
|
22
|
+
master.getServer().use(cors(corsOptions));
|
|
23
|
+
await ADDS.run("cors.post", { config, options, master });
|
|
24
|
+
}
|
|
27
25
|
};
|
package/src/init/db/index.js
CHANGED
|
@@ -1,50 +1,48 @@
|
|
|
1
|
-
const path = require(
|
|
2
|
-
const {objHas} = require(
|
|
1
|
+
const path = require("path");
|
|
2
|
+
const { objHas } = require("../../common");
|
|
3
3
|
|
|
4
|
-
module.exports = class InitDB{
|
|
4
|
+
module.exports = class InitDB {
|
|
5
|
+
static default = path.resolve(__dirname, "./mongoose.js");
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
static drivers = {
|
|
8
|
+
ioredis: path.resolve(__dirname, "./ioredis.js"),
|
|
9
|
+
redis: path.resolve(__dirname, "./redis.js"),
|
|
10
|
+
mongoose: path.resolve(__dirname, "./mongoose.js"),
|
|
11
|
+
};
|
|
7
12
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
static getConstructor(driver){
|
|
20
|
-
if(objHas(InitDB.drivers, driver)){
|
|
21
|
-
return require(InitDB.drivers[driver]);
|
|
22
|
-
}else{
|
|
23
|
-
return require(InitDB.default);
|
|
13
|
+
/**
|
|
14
|
+
* Returns constructor of DB driver
|
|
15
|
+
* @param {string} driver name of db engine
|
|
16
|
+
* @return {Object} class constructor or undefined
|
|
17
|
+
**/
|
|
18
|
+
static getConstructor(driver) {
|
|
19
|
+
if (objHas(InitDB.drivers, driver)) {
|
|
20
|
+
return require(InitDB.drivers[driver]);
|
|
21
|
+
} else {
|
|
22
|
+
return require(InitDB.default);
|
|
23
|
+
}
|
|
24
24
|
}
|
|
25
|
-
}
|
|
26
25
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
26
|
+
/**
|
|
27
|
+
* db = {
|
|
28
|
+
* [db_driver_name_1]: options,
|
|
29
|
+
* [db_driver_name_2]: options,
|
|
30
|
+
* }
|
|
31
|
+
* to get driver require('not-node').getEnv(db_driver_name_2)
|
|
32
|
+
* require('not-node').getEnv('mongoose')
|
|
33
|
+
* require('not-node').getEnv('redis')
|
|
34
|
+
**/
|
|
35
|
+
async run({ master, config, options }) {
|
|
36
|
+
const conf = config.get("db");
|
|
37
|
+
for (let driver in conf) {
|
|
38
|
+
const Constructor = InitDB.getConstructor(driver);
|
|
39
|
+
await new Constructor().run({
|
|
40
|
+
master,
|
|
41
|
+
config,
|
|
42
|
+
options,
|
|
43
|
+
conf: conf[driver],
|
|
44
|
+
alias: driver,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
47
|
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
48
|
};
|
package/src/init/db/ioredis.js
CHANGED
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
const log = require(
|
|
2
|
-
const ADDS = require(
|
|
3
|
-
|
|
4
|
-
module.exports = class InitDBRedisIO{
|
|
5
|
-
|
|
6
|
-
static async initRedis({ conf, master, alias}) {
|
|
7
|
-
log.info('Setting up ioredis connection...');
|
|
8
|
-
const Redis = require('ioredis');
|
|
9
|
-
const redisClient = new Redis(conf);
|
|
10
|
-
redisClient.on('error', log.error);
|
|
11
|
-
master.setEnv(`db.${alias}`, redisClient);
|
|
12
|
-
log.log('redis client');
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async run({config, options, master, conf, alias}){
|
|
16
|
-
await ADDS.run(`db.${alias}.pre`, {config, options, master, conf, alias});
|
|
17
|
-
await InitDBRedisIO.initRedis({conf, master, alias});
|
|
18
|
-
await ADDS.run(`db.${alias}.post`, {config, options, master, conf, alias});
|
|
19
|
-
}
|
|
20
|
-
|
|
1
|
+
const log = require("not-log")(module, "not-node//init");
|
|
2
|
+
const ADDS = require("../additional");
|
|
21
3
|
|
|
4
|
+
module.exports = class InitDBRedisIO {
|
|
5
|
+
static async initRedis({ conf, master, alias }) {
|
|
6
|
+
log.info("Setting up ioredis connection...");
|
|
7
|
+
const Redis = require("ioredis");
|
|
8
|
+
const redisClient = new Redis(conf);
|
|
9
|
+
redisClient.on("error", log.error);
|
|
10
|
+
master.setEnv(`db.${alias}`, redisClient);
|
|
11
|
+
log.log("redis client");
|
|
12
|
+
}
|
|
22
13
|
|
|
14
|
+
async run({ config, options, master, conf, alias }) {
|
|
15
|
+
await ADDS.run(`db.${alias}.pre`, {
|
|
16
|
+
config,
|
|
17
|
+
options,
|
|
18
|
+
master,
|
|
19
|
+
conf,
|
|
20
|
+
alias,
|
|
21
|
+
});
|
|
22
|
+
await InitDBRedisIO.initRedis({ conf, master, alias });
|
|
23
|
+
await ADDS.run(`db.${alias}.post`, {
|
|
24
|
+
config,
|
|
25
|
+
options,
|
|
26
|
+
master,
|
|
27
|
+
conf,
|
|
28
|
+
alias,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
23
31
|
};
|
package/src/init/db/mongoose.js
CHANGED
|
@@ -1,37 +1,47 @@
|
|
|
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 InitDBMongoose{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return options;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
static async initMongoose({ conf, master, alias}) {
|
|
14
|
-
const Increment = require('../../model/increment.js');
|
|
15
|
-
log.info('Setting up mongoose connection...');
|
|
16
|
-
const mongoose = require('mongoose');
|
|
17
|
-
mongoose.Promise = global.Promise;
|
|
18
|
-
await mongoose.connect(
|
|
19
|
-
conf.uri,
|
|
20
|
-
InitDBMongoose.fixMongooseOptions(conf.options)
|
|
21
|
-
);
|
|
22
|
-
log.info('Mongoose connected...');
|
|
23
|
-
if(conf.increment !== false){
|
|
24
|
-
Increment.init(mongoose);
|
|
4
|
+
module.exports = class InitDBMongoose {
|
|
5
|
+
static fixMongooseOptions(opts) {
|
|
6
|
+
let options = JSON.parse(JSON.stringify(opts));
|
|
7
|
+
delete options.host;
|
|
8
|
+
delete options.db;
|
|
9
|
+
return options;
|
|
25
10
|
}
|
|
26
|
-
master.setMongoose(mongoose);
|
|
27
|
-
master.setEnv(`db.${alias}`, mongoose);
|
|
28
|
-
}
|
|
29
11
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
12
|
+
static async initMongoose({ conf, master, alias }) {
|
|
13
|
+
const Increment = require("../../model/increment.js");
|
|
14
|
+
log.info("Setting up mongoose connection...");
|
|
15
|
+
const mongoose = require("mongoose");
|
|
16
|
+
mongoose.Promise = global.Promise;
|
|
17
|
+
await mongoose.connect(
|
|
18
|
+
conf.uri,
|
|
19
|
+
InitDBMongoose.fixMongooseOptions(conf.options)
|
|
20
|
+
);
|
|
21
|
+
log.info("Mongoose connected...");
|
|
22
|
+
if (conf.increment !== false) {
|
|
23
|
+
Increment.init(mongoose);
|
|
24
|
+
}
|
|
25
|
+
master.setMongoose(mongoose);
|
|
26
|
+
master.setEnv(`db.${alias}`, mongoose);
|
|
27
|
+
}
|
|
36
28
|
|
|
29
|
+
async run({ config, options, master, conf, alias }) {
|
|
30
|
+
log.info(`db.${alias}.pre`);
|
|
31
|
+
await ADDS.run(`db.${alias}.pre`, {
|
|
32
|
+
config,
|
|
33
|
+
options,
|
|
34
|
+
master,
|
|
35
|
+
conf,
|
|
36
|
+
alias,
|
|
37
|
+
});
|
|
38
|
+
await InitDBMongoose.initMongoose({ conf, master, alias });
|
|
39
|
+
await ADDS.run(`db.${alias}.post`, {
|
|
40
|
+
config,
|
|
41
|
+
options,
|
|
42
|
+
master,
|
|
43
|
+
conf,
|
|
44
|
+
alias,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
37
47
|
};
|
package/src/init/db/redis.js
CHANGED
|
@@ -1,49 +1,60 @@
|
|
|
1
|
-
const {notError} = require(
|
|
2
|
-
const log = require(
|
|
3
|
-
const ADDS = require(
|
|
4
|
-
|
|
5
|
-
module.exports = class InitDBRedis{
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
1
|
+
const { notError } = require("not-error");
|
|
2
|
+
const log = require("not-log")(module, "not-node//init");
|
|
3
|
+
const ADDS = require("../additional");
|
|
4
|
+
|
|
5
|
+
module.exports = class InitDBRedis {
|
|
6
|
+
static async initRedis({ conf, master, alias }) {
|
|
7
|
+
log.info("Setting up redis connection...");
|
|
8
|
+
const redis = require("redis");
|
|
9
|
+
const redisClient = redis.createClient(conf);
|
|
10
|
+
InitDBRedis.bindClientEvents({ master, redisClient });
|
|
11
|
+
master.setEnv(`db.${alias}`, redisClient);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async run({ config, options, master, conf, alias }) {
|
|
15
|
+
await ADDS.run(`db.${alias}.pre`, {
|
|
16
|
+
config,
|
|
17
|
+
options,
|
|
18
|
+
master,
|
|
19
|
+
conf,
|
|
20
|
+
alias,
|
|
21
|
+
});
|
|
22
|
+
await InitDBRedis.initRedis({ conf, master, alias });
|
|
23
|
+
await ADDS.run(`db.${alias}.post`, {
|
|
24
|
+
config,
|
|
25
|
+
options,
|
|
26
|
+
master,
|
|
27
|
+
conf,
|
|
28
|
+
alias,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static bindClientEvents({ redisClient, master }) {
|
|
33
|
+
redisClient.on("error", (err) => {
|
|
34
|
+
log.error("Redis client error: ", err);
|
|
35
|
+
master
|
|
36
|
+
.getApp()
|
|
37
|
+
.report(new notError("Redis connection failed", {}, err));
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
redisClient.on("warning", (err) => {
|
|
41
|
+
log.error("Redis client warning: ", err);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
redisClient.on("connect", function () {
|
|
45
|
+
log.info("Redis client connected to DB");
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
redisClient.on("ready", function () {
|
|
49
|
+
log.info("Redis client ready");
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
redisClient.on("reconnecting", function () {
|
|
53
|
+
log.info("Redis client reconnecting");
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
redisClient.on("end", function () {
|
|
57
|
+
log.info("Redis client closed connection");
|
|
58
|
+
});
|
|
59
|
+
}
|
|
49
60
|
};
|