UNPKG

gcl

Version:

码农村nodejs类库,完成解决回调陷阱,配置框架,IOC框架,统一多DB访问框架,可扩展日志框架和io/db/net/thread/pool 克隆表达式,加解密算法等等一系列基础类库和算法的实现

1,036 lines (890 loc) 46.6 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.Configs = exports.getApplicationConfigManagerFromDirSync = exports.getApplicationConfigManagerFromFileSync = exports.getApplicationConfigManagerSync = exports.getBaseConfigManagerSync = exports.getApplicationConfigManagerFromDir = exports.getApplicationConfigManagerFromFile = exports.getApplicationConfigManagerFromObj = exports.getApplicationConfigManagerFromJS = exports.getApplicationConfigManager = exports.getBaseConfigManager = exports.getConfigManagerFromDirSync = exports.getConfigManagerFromDir = exports.getConfigManagerFromFileSync = exports.getConfigManagerFromFile = exports.getConfigManagerFromJS = exports.getConfigManagerFromObj = exports.ConfigAdapter = exports.ConfigManager = exports.ProxyConfig = exports.AppSettings = exports.AppSettingsConfigConvert = exports.ConfigConvert = exports.Config = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _tool = require('../common/tool'); var _tool2 = _interopRequireDefault(_tool); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _tool3 = require('./tool'); var _tool4 = _interopRequireDefault(_tool3); var _path = require('path'); var _path2 = _interopRequireDefault(_path); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * todo * Config基础存储类 拥有getValue(k),setValue(k,v),merge(config)等方法 * @param */ var Config = exports.Config = function () { function Config() { (0, _classCallCheck3.default)(this, Config); var _ = this; _.data = {}; } (0, _createClass3.default)(Config, [{ key: 'getValue', value: function getValue(key) { return this.data[key]; } }, { key: 'setValue', value: function setValue(key, value) { this.data[key] = value; } }, { key: 'merge', value: function merge(config) { this.data = _tool2.default.merge(this.data, config.data); } }]); return Config; }(); /** * ConfigConvert的基础类模型说明 基本上只有接口定义 未实现任何功能 * */ var ConfigConvert = exports.ConfigConvert = function () { function ConfigConvert() { (0, _classCallCheck3.default)(this, ConfigConvert); this.needConfig = false; } (0, _createClass3.default)(ConfigConvert, [{ key: 'toConfig', value: function toConfig() { return null; } }, { key: 'toStrings', value: function toStrings(config) { return ""; } }]); return ConfigConvert; }(); /** * ConfigConvert的基本定义负责将一个KeyValueMap转换成真实的config */ var AppSettingsConfigConvert = exports.AppSettingsConfigConvert = function (_ConfigConvert) { (0, _inherits3.default)(AppSettingsConfigConvert, _ConfigConvert); function AppSettingsConfigConvert() { (0, _classCallCheck3.default)(this, AppSettingsConfigConvert); return (0, _possibleConstructorReturn3.default)(this, (AppSettingsConfigConvert.__proto__ || (0, _getPrototypeOf2.default)(AppSettingsConfigConvert)).call(this)); } (0, _createClass3.default)(AppSettingsConfigConvert, [{ key: 'toConfig', value: function toConfig(val) { var config = new Config(); val = _tool2.default.getValue(val, {}); for (var k in val) { var v = val[k]; config.data[k] = v; } return config; } }]); return AppSettingsConfigConvert; }(ConfigConvert); var AppSettings = exports.AppSettings = function AppSettings(cm, key) { return cm.getConfigValue('AppSettings', key); }; /** * Config的代理,用于调用configmanger完成config的获取与赋值操作,保护ConfigManager的调用完整逻辑 */ var ProxyConfig = exports.ProxyConfig = function (_Config) { (0, _inherits3.default)(ProxyConfig, _Config); function ProxyConfig(config, confkey) { (0, _classCallCheck3.default)(this, ProxyConfig); var _this2 = (0, _possibleConstructorReturn3.default)(this, (ProxyConfig.__proto__ || (0, _getPrototypeOf2.default)(ProxyConfig)).call(this)); var _pri = pri(_this2, { config: config, confkey: confkey }), _ = _pri._, __ = _pri.__; return _this2; } (0, _createClass3.default)(ProxyConfig, [{ key: 'getValue', value: function getValue(key) { var _pri2 = pri(this), _ = _pri2._, __ = _pri2.__; return __.config.getConfigValue(__.confkey, key); } }, { key: 'setValue', value: function setValue(key, value) { var _pri3 = pri(this), _ = _pri3._, __ = _pri3.__; return __.config.setConfigValue(__.confkey, key, value); } }, { key: 'merge', value: function merge(config) { _tool2.default.shoeException("不支持的功能merge"); } }]); return ProxyConfig; }(Config); /** * ConfigManager Config类库的核心类,负责完成链式连接,提供统一的接口供ConfigManager 获取值,并监控配置的变更 */ var ConfigManager = exports.ConfigManager = function (_Config2) { (0, _inherits3.default)(ConfigManager, _Config2); function ConfigManager(parent, resource) { (0, _classCallCheck3.default)(this, ConfigManager); var _this3 = (0, _possibleConstructorReturn3.default)(this, (ConfigManager.__proto__ || (0, _getPrototypeOf2.default)(ConfigManager)).call(this)); var _pri4 = pri(_this3, { dic: {}, data: {}, hasUpdate: false, parent: parent, resource: resource }), _ = _pri4._, __ = _pri4.__; if (!parent) { __.dic['ConfigConverts'] = new ___.ConfigConvert(); } _.adapter = ___.getConfigAdapter(); _.adapter.fill(_, __.dic, __.resource); return _this3; } (0, _createClass3.default)(ConfigManager, [{ key: 'getConfig', value: function getConfig(key) { var _pri5 = pri(this), _ = _pri5._, __ = _pri5.__; __.data[key] = __.data[key] || new ProxyConfig(_, key); return __.data[key]; } }, { key: 'getConfigValue', value: function getConfigValue(config, key) { var _pri6 = pri(this), _ = _pri6._, __ = _pri6.__; if (!__.dic[config]) return ___.getValue(__.parent, config, key);else { return __.dic[config].getValue(key); } } }, { key: 'setConfigValue', value: function setConfigValue(config, key, value) { var _pri7 = pri(this), _ = _pri7._, __ = _pri7.__; __.hasUpdate = true; if (!__.dic[config]) ___.setValue(__.parent, config, key, value);else __.dic[config].setValue(key, value); } }, { key: 'update', value: function update() { var _pri8 = pri(this), _ = _pri8._, __ = _pri8.__; if (__.hasUpdate) _.adapter.update(_, __.dic, __.resource); } }, { key: 'refill', value: function refill() { var _pri9 = pri(this), _ = _pri9._, __ = _pri9.__; __.dic = {}; _.adapter.fill(_, __.dic, __.resource); } }]); return ConfigManager; }(Config); var ConfigAdapter = exports.ConfigAdapter = function () { function ConfigAdapter() { (0, _classCallCheck3.default)(this, ConfigAdapter); } (0, _createClass3.default)(ConfigAdapter, [{ key: 'fill', value: function fill(cm, dic, resource) { resource = resource.load(); if (typeof resource == 'string') { //拿到配置的JSON数据 比JSON不要求严格格式 resource = eval('(' + resource + ')'); } for (var i in resource) { if (i == 'base') continue; //放置base属性被误读 var convert = cm.getConfigValue('ConfigConverts', i); if (!convert) { _tool2.default.showException('ConfigConverts 没有找到对应的解析器' + i); } else { var val = convert.toConfig(resource[i], convert.needConfig ? cm : null); if (!val) { console.log('ConfigConverts 解析失败' + i + ':'); console.log(resource[i]); } else { if (dic[i]) { dic[i].merge(val); } else { dic[i] = val; } } } } } }, { key: 'update', value: function update(cm, dic, resource) { var data = {}; for (var i in dic) { var convert = cm.getConfigValue('ConfigConverts', i); if (!convert) { _tool2.default.showException('ConfigConverts 没有找到对应的解析器' + i); } else { var val = convert.toString(dic[i]); if (!val) { console.log('ConfigConverts 解析失败' + i + ':'); console.log(dic[i]); } else { data[i] = val; } } } resource.save(_tool2.default.toJsonString(data)); } }]); return ConfigAdapter; }(); var getConfigManagerFromObj = exports.getConfigManagerFromObj = function getConfigManagerFromObj(cm, obj) { if (!obj) return cm; return new ConfigManager(cm, function () { return new (function () { function _class() { (0, _classCallCheck3.default)(this, _class); var _pri10 = pri(this), __ = _pri10.__; if (typeof obj === 'string') { obj = eval('(' + obj + ')'); } } (0, _createClass3.default)(_class, [{ key: 'load', value: function load() { return obj; } }, { key: 'save', value: function save() { _tool2.default.showException('getConfigManagerFromObj不支持此方式'); } }]); return _class; }())(); }()); }; var getConfigManagerFromJS = exports.getConfigManagerFromJS = function getConfigManagerFromJS(cm, path) { if (!path) return cm; return new ConfigManager(cm, function () { return new (function () { function _class2() { (0, _classCallCheck3.default)(this, _class2); if (typeof path === 'string') { path = _tool2.default.include(path); } } (0, _createClass3.default)(_class2, [{ key: 'load', value: function load() { return path; } }, { key: 'save', value: function save() { _tool2.default.showException('getConfigManagerFromJS不支持此方式'); } }]); return _class2; }())(); }()); }; /** * 异步获取配置文件 * @param {*} cm * @param {*} path */ var getConfigManagerFromFile = exports.getConfigManagerFromFile = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(cm, path) { var _this4 = this; var config, cm2, fill; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: if (path) { _context3.next = 2; break; } return _context3.abrupt('return', cm); case 2: config = {}; cm2 = null; fill = function () { var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { var paths; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: paths = _tool2.default.isArray(path) ? path : path.split(';'); _context2.next = 3; return _tool2.default.each(paths, function () { var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(v) { var _v, cont; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _v = v; if (!(v.startWith('/') || v.startWith('\\'))) v = _tool4.default.execDir() + _tool2.default.environment.splitChar + v.trim('/').trim('\\');else v = _tool4.default.formatPath(v); _context.next = 5; return _tool2.default.callback(_fs2.default.readFile, _fs2.default, v); case 5: _context.t0 = _context.sent; if (_context.t0) { _context.next = 8; break; } _context.t0 = '{}'; case 8: cont = _context.t0; cont = eval('(' + cont.toString('utf-8').replace(/(\s+\/\/[^\r\n]*[\r\n]*)+|[\r\n\s]+/g, ' ') + ')'); _tool2.default.merge(config, cont, true); _fs2.default.watchFile(_v, fill); return _context.abrupt('return', false); case 15: _context.prev = 15; _context.t1 = _context['catch'](0); console.log('\u8BFB\u53D6\u6587\u4EF6' + v + '\u9519\u8BEF:' + _context.t1.message); throw new Error('\u8BFB\u53D6\u6587\u4EF6' + (path + '\\' + v) + '\u9519\u8BEF:' + _context.t1.message); case 19: case 'end': return _context.stop(); } } }, _callee, _this4, [[0, 15]]); })); return function (_x3) { return _ref3.apply(this, arguments); }; }(), true).then(function () { if (cm2) cm2.refill();else cm2 = new ConfigManager(cm, new (function () { function _class3() { (0, _classCallCheck3.default)(this, _class3); } (0, _createClass3.default)(_class3, [{ key: 'load', value: function load() { return config; } }, { key: 'save', value: function save() { _tool2.default.showException('getConfigManagerFromFile不支持此方式'); } }]); return _class3; }())()); }); case 3: return _context2.abrupt('return', cm2); case 4: case 'end': return _context2.stop(); } } }, _callee2, _this4); })); return function fill() { return _ref2.apply(this, arguments); }; }(); _context3.next = 7; return fill(); case 7: return _context3.abrupt('return', cm2); case 8: case 'end': return _context3.stop(); } } }, _callee3, this); })); return function getConfigManagerFromFile(_x, _x2) { return _ref.apply(this, arguments); }; }(); /** * 同步获取配置文件 * @param {*} cm * @param {*} path */ var getConfigManagerFromFileSync = exports.getConfigManagerFromFileSync = function getConfigManagerFromFileSync(cm, path) { if (!path) return cm; var config = {}; var cm2 = null; var fill = function fill() { var paths = _tool2.default.isArray(path) ? path : path.split(';'); paths.forEach(function (v) { try { var _v = v; if (!(v.startWith('/') || v.startWith('\\'))) v = _tool4.default.execDir() + _tool2.default.environment.splitChar + v.trim('/').trim('\\');else v = _tool4.default.formatPath(v); var cont = _fs2.default.readFileSync(v) || '{}'; cont = eval('(' + cont.toString('utf-8').replace(/(\s+\/\/[^\r\n]*[\r\n]*)+|[\r\n\s]+/g, ' ') + ')'); _tool2.default.merge(config, cont, true); _fs2.default.watchFile(_v, fill); return; } catch (e) { console.log('\u8BFB\u53D6\u6587\u4EF6' + v + '\u9519\u8BEF:' + e.message); throw new Error('\u8BFB\u53D6\u6587\u4EF6' + (path + '\\' + v) + '\u9519\u8BEF:' + e.message); } }); if (cm2) cm2.refill();else cm2 = new ConfigManager(cm, new (function () { function _class4() { (0, _classCallCheck3.default)(this, _class4); } (0, _createClass3.default)(_class4, [{ key: 'load', value: function load() { return config; } }, { key: 'save', value: function save() { _tool2.default.showException('getConfigManagerFromFileSync不支持此方式'); } }]); return _class4; }())()); return cm2; }; fill(); return cm2; }; var getConfigManagerFromDir = exports.getConfigManagerFromDir = function () { var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(cm, path) { var _this5 = this; var regex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '^\\S+\\.npcf$'; var config, cm2, fill; return _regenerator2.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: if (path) { _context6.next = 2; break; } return _context6.abrupt('return', cm); case 2: if (path.startWith('/') || path.startWith('\\')) path = _path2.default.parse(_path2.default.resolve(_path2.default.normalize(process.mainModule.filename))).dir + _tool2.default.environment.splitChar + path.trim('/').trim('\\');else path = _tool4.default.formatPath(path); config = {}; cm2 = null; fill = function () { var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5() { var data, reg; return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return _tool2.default.callback(_fs2.default.readdir, _fs2.default, path); case 2: _context5.t0 = _context5.sent; if (_context5.t0) { _context5.next = 5; break; } _context5.t0 = []; case 5: data = _context5.t0; reg = new RegExp(regex); _context5.next = 9; return _tool2.default.each(data, function () { var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(v) { var cont; return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.prev = 0; if (reg.test(v)) { _context4.next = 3; break; } return _context4.abrupt('return', false); case 3: _context4.next = 5; return _tool2.default.callback(_fs2.default.readFile, _fs2.default, path + _tool2.default.environment.splitChar + v); case 5: _context4.t0 = _context4.sent; if (_context4.t0) { _context4.next = 8; break; } _context4.t0 = '{}'; case 8: cont = _context4.t0; cont = eval('(' + cont.toString('utf-8').replace(/(\s+\/\/[^\r\n]*[\r\n]*)+|[\r\n\s]+/g, ' ') + ')'); _tool2.default.merge(config, cont, true); return _context4.abrupt('return', false); case 14: _context4.prev = 14; _context4.t1 = _context4['catch'](0); console.log('\u8BFB\u53D6\u6587\u4EF6' + (path + _tool2.default.environment.splitChar + v) + '\u9519\u8BEF:' + _context4.t1.message); throw new Error('\u8BFB\u53D6\u6587\u4EF6' + (path + _tool2.default.environment.splitChar + v) + '\u9519\u8BEF:' + _context4.t1.message); case 18: case 'end': return _context4.stop(); } } }, _callee4, _this5, [[0, 14]]); })); return function (_x7) { return _ref6.apply(this, arguments); }; }(), true).then(function () { if (cm2) cm2.refill();else cm2 = new ConfigManager(cm, new (function () { function _class5() { (0, _classCallCheck3.default)(this, _class5); } (0, _createClass3.default)(_class5, [{ key: 'load', value: function load() { return config; } }, { key: 'save', value: function save() { _tool2.default.showException('getConfigManagerFromFileSync不支持此方式'); } }]); return _class5; }())()); }); case 9: return _context5.abrupt('return', cm2); case 10: case 'end': return _context5.stop(); } } }, _callee5, _this5); })); return function fill() { return _ref5.apply(this, arguments); }; }(); _fs2.default.watchFile(path, fill); _context6.next = 9; return fill(); case 9: return _context6.abrupt('return', cm2); case 10: case 'end': return _context6.stop(); } } }, _callee6, this); })); return function getConfigManagerFromDir(_x4, _x5) { return _ref4.apply(this, arguments); }; }(); var getConfigManagerFromDirSync = exports.getConfigManagerFromDirSync = function getConfigManagerFromDirSync(cm, path) { var regex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '^\\S+\\.npcf$'; if (!path) return cm; if (path.startWith('/') || path.startWith('\\')) path = _path2.default.parse(_path2.default.resolve(_path2.default.normalize(process.mainModule.filename))).dir + _tool2.default.environment.splitChar + path.trim('/').trim('\\');else path = _tool4.default.formatPath(path); var config = {}; var cm2 = null; var fill = function fill() { var data = _fs2.default.readdirSync(path) || []; var reg = new RegExp(regex); data.forEach(function (v) { try { if (!reg.test(v)) return; var cont = _fs2.default.readFileSync(path + _tool2.default.environment.splitChar + v) || '{}'; cont = eval('(' + cont.toString('utf-8').replace(/(\s+\/\/[^\r\n]*[\r\n]*)+|[\r\n\s]+/g, ' ') + ')'); _tool2.default.merge(config, cont, true); return; } catch (e) { console.log('\u8BFB\u53D6\u6587\u4EF6' + (path + _tool2.default.environment.splitChar + v) + '\u9519\u8BEF:' + e.message); throw new Error('\u8BFB\u53D6\u6587\u4EF6' + (path + '\\' + v) + '\u9519\u8BEF:' + e.message); } }); if (cm2) cm2.refill();else cm2 = new ConfigManager(cm, new (function () { function _class6() { (0, _classCallCheck3.default)(this, _class6); } (0, _createClass3.default)(_class6, [{ key: 'load', value: function load() { return config; } }, { key: 'save', value: function save() { _tool2.default.showException('getConfigManagerFromFileSync不支持此方式'); } }]); return _class6; }())()); return cm2; }; _fs2.default.watchFile(path, fill); fill(); return cm2; }; var getBaseConfigManager = exports.getBaseConfigManager = function () { var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7() { return _regenerator2.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: if (!___.baseConfig) { _context7.next = 3; break; } _context7.next = 6; break; case 3: _context7.next = 5; return getConfigManagerFromFile(null, 'base.npcf'); case 5: ___.baseConfig = _context7.sent; case 6: return _context7.abrupt('return', ___.baseConfig); case 7: case 'end': return _context7.stop(); } } }, _callee7, undefined); })); return function getBaseConfigManager() { return _ref7.apply(this, arguments); }; }(); var getApplicationConfigManager = exports.getApplicationConfigManager = function () { var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8() { return _regenerator2.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: if (!___.appConfig) { _context8.next = 3; break; } _context8.next = 6; break; case 3: _context8.next = 5; return getApplicationConfigManagerFromFile(_path2.default.parse(process.mainModule.filename).name + '.npcf'); case 5: ___.appConfig = _context8.sent; case 6: return _context8.abrupt('return', ___.appConfig); case 7: case 'end': return _context8.stop(); } } }, _callee8, undefined); })); return function getApplicationConfigManager() { return _ref8.apply(this, arguments); }; }(); var getApplicationConfigManagerFromJS = exports.getApplicationConfigManagerFromJS = function () { var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(path) { return _regenerator2.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.t0 = getConfigManagerFromJS; _context9.next = 3; return getBaseConfigManager(); case 3: _context9.t1 = _context9.sent; _context9.t2 = path; return _context9.abrupt('return', (0, _context9.t0)(_context9.t1, _context9.t2)); case 6: case 'end': return _context9.stop(); } } }, _callee9, undefined); })); return function getApplicationConfigManagerFromJS(_x9) { return _ref9.apply(this, arguments); }; }(); var getApplicationConfigManagerFromObj = exports.getApplicationConfigManagerFromObj = function () { var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(obj) { return _regenerator2.default.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.t0 = getConfigManagerFromObj; _context10.next = 3; return getBaseConfigManager(); case 3: _context10.t1 = _context10.sent; _context10.t2 = obj; return _context10.abrupt('return', (0, _context10.t0)(_context10.t1, _context10.t2)); case 6: case 'end': return _context10.stop(); } } }, _callee10, undefined); })); return function getApplicationConfigManagerFromObj(_x10) { return _ref10.apply(this, arguments); }; }(); var getApplicationConfigManagerFromFile = exports.getApplicationConfigManagerFromFile = function () { var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(path) { return _regenerator2.default.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: _context11.t0 = getConfigManagerFromFile; _context11.next = 3; return getBaseConfigManager(); case 3: _context11.t1 = _context11.sent; _context11.t2 = path; return _context11.abrupt('return', (0, _context11.t0)(_context11.t1, _context11.t2)); case 6: case 'end': return _context11.stop(); } } }, _callee11, undefined); })); return function getApplicationConfigManagerFromFile(_x11) { return _ref11.apply(this, arguments); }; }(); var getApplicationConfigManagerFromDir = exports.getApplicationConfigManagerFromDir = function () { var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(path) { return _regenerator2.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.t0 = getConfigManagerFromDir; _context12.next = 3; return getBaseConfigManager(); case 3: _context12.t1 = _context12.sent; _context12.t2 = path; return _context12.abrupt('return', (0, _context12.t0)(_context12.t1, _context12.t2)); case 6: case 'end': return _context12.stop(); } } }, _callee12, undefined); })); return function getApplicationConfigManagerFromDir(_x12) { return _ref12.apply(this, arguments); }; }(); var getBaseConfigManagerSync = exports.getBaseConfigManagerSync = function getBaseConfigManagerSync() { if (___.baseConfig) {} else ___.baseConfig = getConfigManagerFromFileSync(null, 'base.npcf'); return ___.baseConfig; }; var getApplicationConfigManagerSync = exports.getApplicationConfigManagerSync = function getApplicationConfigManagerSync() { if (___.appConfig) {} else ___.appConfig = getApplicationConfigManagerFromFileSync(_path2.default.parse(process.mainModule.filename).name + '.npcf'); return ___.appConfig; }; var getApplicationConfigManagerFromFileSync = exports.getApplicationConfigManagerFromFileSync = function getApplicationConfigManagerFromFileSync(path) { return getConfigManagerFromFileSync(getBaseConfigManagerSync(), path); }; var getApplicationConfigManagerFromDirSync = exports.getApplicationConfigManagerFromDirSync = function getApplicationConfigManagerFromDirSync(path) { return getConfigManagerFromDirSync(getBaseConfigManagerSync(), path); }; var ___ = { Configs: { ConfigConverts: { AppSettings: { type: 'AppSettingsConfigConvert', path: '/com/coooders/io/config' } } }, getValue: function getValue(parent, config, key) { return parent ? parent.getConfigValue(config, key) : null; }, setValue: function setValue(parent, config, key, value) { return parent ? parent.setConfigValue(config, key, value) : null; }, ConfigConvert: function (_Config3) { (0, _inherits3.default)(ConfigConvert, _Config3); function ConfigConvert() { (0, _classCallCheck3.default)(this, ConfigConvert); var _this6 = (0, _possibleConstructorReturn3.default)(this, (ConfigConvert.__proto__ || (0, _getPrototypeOf2.default)(ConfigConvert)).call(this)); _this6.data['ConfigConverts'] = _this6; return _this6; } (0, _createClass3.default)(ConfigConvert, [{ key: 'toConfig', value: function toConfig(val) { return new (function (_Config4) { (0, _inherits3.default)(_class7, _Config4); function _class7() { (0, _classCallCheck3.default)(this, _class7); var _this7 = (0, _possibleConstructorReturn3.default)(this, (_class7.__proto__ || (0, _getPrototypeOf2.default)(_class7)).call(this)); var _ = _this7; for (var i in val) { if (i == 'base') { _.basepath = val.base ? val.base : null; ___.Configs.base = _.basepath; continue; } _.data[i] = function () { var conf = val[i]; //create要求是类定义 不能是 类名!! //require 如何获取全局的参数或者npm后的参数 全文件地址可以不带盘符 或者相对路径查找文件 //注意使用了地址的类方法 var cls = _tool2.default.include(conf.path, _.basepath); if (conf.type && cls[conf.type]) return _tool2.default.create2(cls[conf.type], []);else return _tool2.default.create2(cls, []); }(); } return _this7; } return _class7; }(Config))(); } }, { key: 'toStrings', value: function toStrings(config) { _tool2.default.showException('基础解析器不支持此功能'); } }]); return ConfigConvert; }(Config), getConfigAdapter: function getConfigAdapter() { if (!ConfigAdapter.instance) { ConfigAdapter.instance = new ConfigAdapter(); } return ConfigAdapter.instance; } }; var Configs = exports.Configs = ___.Configs; exports.default = { Configs: Configs, Config: Config, ConfigConvert: ConfigConvert, AppSettingsConfigConvert: AppSettingsConfigConvert, ProxyConfig: ProxyConfig, AppSettings: AppSettings, ConfigManager: ConfigManager, ConfigAdapter: ConfigAdapter, getConfigManagerFromJS: getConfigManagerFromJS, getConfigManagerFromObj: getConfigManagerFromObj, getConfigManagerFromFile: getConfigManagerFromFile, getConfigManagerFromDir: getConfigManagerFromDir, getBaseConfigManager: getBaseConfigManager, getApplicationConfigManager: getApplicationConfigManager, getApplicationConfigManagerFromDir: getApplicationConfigManagerFromDir, getApplicationConfigManagerFromFile: getApplicationConfigManagerFromFile, getApplicationConfigManagerFromJS: getApplicationConfigManagerFromJS, getApplicationConfigManagerFromObj: getApplicationConfigManagerFromObj, getBaseConfigManagerSync: getBaseConfigManagerSync, getApplicationConfigManagerSync: getApplicationConfigManagerSync, getConfigManagerFromFileSync: getConfigManagerFromFileSync, getConfigManagerFromDirSync: getConfigManagerFromDirSync }; var pri = _tool2.default.pris(); //# sourceMappingURL=config.js.map