msful
Version:
Web API server for micro service.
128 lines (106 loc) • 3.72 kB
JavaScript
// msful コア情報.
//
module.exports = (function (_g) {
'use strict';
var file = require("../lib/file");
var o = {};
// モジュール情報.
var modules = {};
// システムパラメータ.
var sysParams = null;
// システムパラメータを設定.
o.setSysParams = function(p) {
sysParams = p;
}
// システムパラメータを取得.
o.getSysParams = function() {
return sysParams;
}
// モジュールの読み込み.
o.loadModules = function(consoleFlag) {
consoleFlag = consoleFlag == true;
modules["logger"] = Object.freeze(msfulLogger());
modules["users"] = Object.freeze(sysParams.getUsers());
modules["file"] = Object.freeze(file);
modules["pfile"] = Object.freeze(require("../lib/pfile"));
modules["psync"] = Object.freeze(require("../lib/psync")(sysParams.getSystemNanoTime()));
modules["jwt"] = Object.freeze(require("../lib/jwt"));
modules["strs"] = Object.freeze(require("../lib/strs"));
modules["nums"] = Object.freeze(require("../lib/nums"));
modules["fcomp"] = Object.freeze(require("../lib/fcomp"));
modules["fcipher"] = Object.freeze(require("../lib/fcipher"));
modules["uniqueId"] = Object.freeze(require("../lib/uniqueId"));
modules["httpClient"] = Object.freeze(require("../lib/http_client"));
modules["phttpc"] = Object.freeze(require("../lib/phttpc"));
// インスタンス生成側.
if(!consoleFlag) {
modules["closeable"] = Object.freeze(require("../lib/closeable"));
modules["validate"] = require("../lib/validate").check;
}
modules["entity"] = Object.freeze(require("../lib/entity"));
// argsCmd.getParams だけを抽出する.
modules["argsCmd"] = Object.freeze({"getParams": require("../lib/subs/args").getParams});
}
// モジュール生成.
o.createModules = function(req, res, pms, consoleFlag) {
if(!consoleFlag) {
require("../lib/closeable").create();
require("../lib/entity").create();
}
require("../lib/validate").create(req, pms);
}
// モジュールのクリア.
o.clearModules = function() {
require("../lib/closeable").clear();
require("../lib/validate").clear();
require("../lib/entity").clear();
}
// モジュールリセット.
o.resetModules = function() {
modules = {};
}
// モジュールを取得.
o.getModules = function() {
return modules;
}
// グローバルメモリにmsful固有の条件を設定します.
o.setMsfulGlobals = function(out) {
out["config"] = Object.freeze(sysParams.getConfig());
out["envConf"] = Object.freeze(sysParams.getConfigEnv());
out["reloadConf"] = Object.freeze(sysParams.reloadConfig);
out["loadConfTime"] = Object.freeze(sysParams.loadConfigTime);
out["msfulEnv"] = Object.freeze(sysParams.getEnvironment());
out["msfulDebug"] = Object.freeze(sysParams.getDebugMode());
out["serverId"] = Object.freeze(sysParams.getServerId());
out["systemNanoTime"] = Object.freeze(sysParams.getSystemNanoTime());
}
// global list.
var _glist = [
"Buffer",
//"__dirname",
//"__filename",
"clearImmediate",
"clearInterval",
"clearTimeout",
"console",
"exports",
"module",
"process",
"setImmediate",
"setInterval",
"setTimeout"
];
// 基本モジュール群をセット
o.setDefaultModules = function(out) {
// グローバルセット.
var len = _glist.length;
for(var i = 0; i < len; i ++) {
out[_glist[i]] = global[_glist[i]];
}
// 標準セット.
//out["global"] = global
out["global"] = out;
out["srcRequire"] = require;
}
return o;
})(global)