@x-9lab/xlab 1.5.3 → 1.6.0

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.
Files changed (42) hide show
  1. package/@types/components/cron/index.d.ts +21 -0
  2. package/@types/env.d.ts +1 -0
  3. package/@types/global.d.ts +2 -0
  4. package/@types/init-env.d.ts +1 -0
  5. package/@types/middleware/compress.d.ts +2 -1
  6. package/@types/server.d.ts +2 -0
  7. package/dist/@config/config.dev.js +3 -5
  8. package/dist/@config/config.js +4 -5
  9. package/dist/@config/config.sand.js +3 -5
  10. package/dist/bin/watch.js +5 -5
  11. package/dist/cluster.js +33 -53
  12. package/dist/components/assets/index.js +4 -6
  13. package/dist/components/cluster/index.js +4 -11
  14. package/dist/components/common/index.js +46 -33
  15. package/dist/components/cron/index.js +14 -21
  16. package/dist/components/header/index.js +17 -24
  17. package/dist/components/header/time.js +2 -4
  18. package/dist/components/log/index.js +6 -13
  19. package/dist/components/mime/index.js +2 -4
  20. package/dist/components/return-code/index.js +18 -25
  21. package/dist/components/uuid/index.js +11 -17
  22. package/dist/config/getEnv.js +4 -6
  23. package/dist/config/index.js +20 -27
  24. package/dist/config/process-custom-config-files.js +20 -22
  25. package/dist/config/process-def-config-file.js +9 -11
  26. package/dist/custom.js +17 -19
  27. package/dist/default-x-config.js +5 -7
  28. package/dist/dot-file.js +8 -9
  29. package/dist/global.js +5 -8
  30. package/dist/init-env.js +19 -0
  31. package/dist/middleware/@bin/html-filter.js +6 -13
  32. package/dist/middleware/bad-request.js +8 -10
  33. package/dist/middleware/compress.js +6 -8
  34. package/dist/middleware/cors.js +5 -8
  35. package/dist/middleware/fresh-filter.js +7 -10
  36. package/dist/middleware/handle-pre-dir.js +3 -5
  37. package/dist/middleware/request-filter.js +22 -43
  38. package/dist/middleware/service-mark.js +3 -6
  39. package/dist/middlewares.js +16 -16
  40. package/dist/router.js +18 -19
  41. package/dist/server.js +50 -70
  42. package/package.json +9 -9
@@ -2,11 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, /**跨域请求处理中间件初始化函数 */ "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
9
- const _utils = require("@x-drive/utils");
5
+ exports.default = _default;
6
+ var _utils = require("@x-drive/utils");
10
7
  /**
11
8
  一些本地的域名或 ip
12
9
 
@@ -18,7 +15,7 @@ const _utils = require("@x-drive/utils");
18
15
  /**根域获取正则 */ const ROOT_NAME_REGEXP = /[\w-]*\.(?:com|lo|cc|cn|asia|biz|coop|edu|gov|int|info|jobs|mobi|name|net|org|pro|tel|trave)(\.[a-z]{2})?/im;
19
16
  /**获取域名根域 */ function getRootName(host) {
20
17
  const match = host.match(ROOT_NAME_REGEXP);
21
- if (match && (0, _utils.isString)(match[0])) {
18
+ if (match && (0, _utils).isString(match[0])) {
22
19
  return match[0];
23
20
  }
24
21
  return null;
@@ -28,9 +25,9 @@ const _utils = require("@x-drive/utils");
28
25
  if (config && config.enable === false) {
29
26
  return false;
30
27
  }
31
- if ((0, _utils.isFunction)(config.check)) {
28
+ if ((0, _utils).isFunction(config.check)) {
32
29
  return config.check(origin, url);
33
- } else if ((0, _utils.isString)(config.type)) {
30
+ } else if ((0, _utils).isString(config.type)) {
34
31
  if (config.type === "all") {
35
32
  return true;
36
33
  } else if (config.type === "sameroot") {
@@ -2,11 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
9
- const _header = require("../components/header");
5
+ exports.default = _default;
6
+ var _header = require("../components/header");
10
7
  const conf = getSysConfig();
11
8
  async function handle(ctx, next) {
12
9
  // 头部字段
@@ -25,7 +22,7 @@ async function handle(ctx, next) {
25
22
  // 没有最后修改时间,附加上当前时间并继续
26
23
  // 或者有nocache参数的话,也直接响应 200 操作
27
24
  if (!conf["304"] || !!queryMap.no_cache || !modifiedSince) {
28
- (0, _header.lastModified)(nowDateString, ctx);
25
+ (0, _header).lastModified(nowDateString, ctx);
29
26
  await next();
30
27
  // 发现有修改时间,直接返回304头
31
28
  } else {
@@ -38,8 +35,8 @@ async function handle(ctx, next) {
38
35
  ctx.status = 304;
39
36
  ctx.body = "";
40
37
  } else {
41
- (0, _header.lastModified)(nowDateString, ctx);
42
- next();
38
+ (0, _header).lastModified(nowDateString, ctx);
39
+ await next();
43
40
  }
44
41
  // 其他的js/css/image静态资源设置两周的缓存时间(可配置)
45
42
  } else if (ctx.state.srcType.js || ctx.state.srcType.css || ctx.state.srcType.img || ctx.state.srcType.tpl || ctx.state.srcType.font) {
@@ -48,12 +45,12 @@ async function handle(ctx, next) {
48
45
  ctx.status = 304;
49
46
  ctx.body = "";
50
47
  } else {
51
- (0, _header.lastModified)(nowDateString, ctx);
48
+ (0, _header).lastModified(nowDateString, ctx);
52
49
  await next();
53
50
  }
54
51
  //其他类型的请求,比如Server API等等
55
52
  } else {
56
- (0, _header.lastModified)(nowDateString, ctx);
53
+ (0, _header).lastModified(nowDateString, ctx);
57
54
  await next();
58
55
  }
59
56
  }
@@ -2,10 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
5
+ exports.default = void 0;
9
6
  var conf = getSysConfig();
10
7
  /**
11
8
  * 路径处理匹配正则
@@ -22,4 +19,5 @@ var conf = getSysConfig();
22
19
  }
23
20
  await next();
24
21
  }
25
- const _default = handlPreDir;
22
+ var _default = handlPreDir;
23
+ exports.default = _default;
@@ -2,55 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
9
- const _htmlFilter = /*#__PURE__*/ _interopRequireWildcard(require("./@bin/html-filter"));
10
- const _url = /*#__PURE__*/ _interopRequireDefault(require("url"));
5
+ exports.default = _default;
6
+ var _htmlFilter = _interopRequireWildcard(require("./@bin/html-filter"));
7
+ var _url = _interopRequireDefault(require("url"));
11
8
  function _interopRequireDefault(obj) {
12
9
  return obj && obj.__esModule ? obj : {
13
10
  default: obj
14
11
  };
15
12
  }
16
- function _getRequireWildcardCache(nodeInterop) {
17
- if (typeof WeakMap !== "function") return null;
18
- var cacheBabelInterop = new WeakMap();
19
- var cacheNodeInterop = new WeakMap();
20
- return (_getRequireWildcardCache = function(nodeInterop) {
21
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
22
- })(nodeInterop);
23
- }
24
- function _interopRequireWildcard(obj, nodeInterop) {
25
- if (!nodeInterop && obj && obj.__esModule) {
13
+ function _interopRequireWildcard(obj) {
14
+ if (obj && obj.__esModule) {
26
15
  return obj;
27
- }
28
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
29
- return {
30
- default: obj
31
- };
32
- }
33
- var cache = _getRequireWildcardCache(nodeInterop);
34
- if (cache && cache.has(obj)) {
35
- return cache.get(obj);
36
- }
37
- var newObj = {};
38
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
39
- for(var key in obj){
40
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
41
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
42
- if (desc && (desc.get || desc.set)) {
43
- Object.defineProperty(newObj, key, desc);
44
- } else {
45
- newObj[key] = obj[key];
16
+ } else {
17
+ var newObj = {};
18
+ if (obj != null) {
19
+ for(var key in obj){
20
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
21
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
22
+ if (desc.get || desc.set) {
23
+ Object.defineProperty(newObj, key, desc);
24
+ } else {
25
+ newObj[key] = obj[key];
26
+ }
27
+ }
46
28
  }
47
29
  }
30
+ newObj.default = obj;
31
+ return newObj;
48
32
  }
49
- newObj.default = obj;
50
- if (cache) {
51
- cache.set(obj, newObj);
52
- }
53
- return newObj;
54
33
  }
55
34
  const IS_STATIC_RE = /^\/.*\.(ttf|woff|eot|html|css|js|json|png|jpeg|jpg|gif|bmp|handlebars|mp3|mp4|m3u8|avi|mpg|mpeg|xml|json|tpl)$/i;
56
35
  const IS_IMG_RE = /\.(jpg|jpeg|png|gif)$/i;
@@ -115,13 +94,13 @@ async function filter(ctx, next) {
115
94
  // 提取页面必要的信息
116
95
  // 由于 dir 也可能直接返回 HTML 页面
117
96
  // 所以这里也需要经过 HTML 的过滤器处理
118
- ctx.state.ver = (0, _htmlFilter.filter)(ctx.url);
97
+ ctx.state.ver = (0, _htmlFilter).filter(ctx.url);
119
98
  } else if (isStatic(pathname)) {
120
99
  srcType.static = true;
121
100
  if (isHtml(pathname)) {
122
101
  srcType.html = true;
123
102
  // 提取页面必要的信息
124
- ctx.state.ver = (0, _htmlFilter.filter)(ctx.url);
103
+ ctx.state.ver = (0, _htmlFilter).filter(ctx.url);
125
104
  } else if (isJS(pathname)) {
126
105
  srcType.js = true;
127
106
  } else if (isImg(pathname)) {
@@ -138,6 +117,6 @@ async function filter(ctx, next) {
138
117
  await next();
139
118
  }
140
119
  function _default() {
141
- (0, _htmlFilter.default)();
120
+ (0, _htmlFilter).default();
142
121
  return filter;
143
122
  }
@@ -2,11 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
9
- const _utils = require("@x-drive/utils");
5
+ exports.default = _default;
6
+ var _utils = require("@x-drive/utils");
10
7
  const serverPackge = require("../../package.json");
11
8
  var info = {};
12
9
  // 业务名称
@@ -18,7 +15,7 @@ info.serverVer = serverPackge.version;
18
15
  info.serverName = serverPackge.name;
19
16
  // 业务启动时间
20
17
  // FIX ME : 服务器不是北京时间的时候这个数据跟实际启动的时间存在时差
21
- info.date = (0, _utils.date)(new Date(), "Y-m-d H:i:s");
18
+ info.date = (0, _utils).date(new Date(), "Y-m-d H:i:s");
22
19
  // 模块版本信息
23
20
  const CLIENT_MARK = `${info.mark}@${info.version}`;
24
21
  const SERVER_MARK = `${info.serverName}@${info.serverVer}`;
@@ -2,13 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
9
- const _utils = require("@x-drive/utils");
10
- const _common = require("./components/common");
11
- const _defaultXConfig = /*#__PURE__*/ _interopRequireDefault(require("./default-x-config"));
5
+ exports.default = void 0;
6
+ var _utils = require("@x-drive/utils");
7
+ var _common = require("./components/common");
8
+ var _defaultXConfig = _interopRequireDefault(require("./default-x-config"));
12
9
  function _interopRequireDefault(obj) {
13
10
  return obj && obj.__esModule ? obj : {
14
11
  default: obj
@@ -34,34 +31,37 @@ const cwd = process.cwd();
34
31
  mConfig = null;
35
32
  }
36
33
  if (mConfig) {
37
- return Object.keys(mConfig).filter((key)=>(0, _utils.isBoolean)(mConfig[key]) ? mConfig[key] : true).map((key, index)=>{
38
- if ((0, _utils.isBoolean)(mConfig[key])) {
34
+ return Object.keys(mConfig).filter((key)=>(0, _utils).isBoolean(mConfig[key]) ? mConfig[key] : true
35
+ ).map((key, index)=>{
36
+ if ((0, _utils).isBoolean(mConfig[key])) {
39
37
  mConfig[key] = {};
40
38
  }
41
- if (!(0, _utils.isString)(mConfig[key].name)) {
39
+ if (!(0, _utils).isString(mConfig[key].name)) {
42
40
  mConfig[key].name = key;
43
41
  }
44
- if (!(0, _utils.isNumber)(mConfig[key].index)) {
42
+ if (!(0, _utils).isNumber(mConfig[key].index)) {
45
43
  mConfig[key].index = index;
46
44
  }
47
45
  return mConfig[key];
48
- }).sort((now, next)=>now.index - next.index);
46
+ }).sort((now, next)=>now.index - next.index
47
+ );
49
48
  }
50
49
  return [];
51
50
  }
52
51
  // [最后3个中间件固定是 系统路由,静态文件服务,错误请求处理模块]
53
52
  /**加载中间件 */ function loadMiddleware(app) {
54
53
  const list = getExeList();
55
- if ((0, _utils.isArray)(list) && list.length) {
54
+ if ((0, _utils).isArray(list) && list.length) {
56
55
  list.forEach((item)=>{
57
56
  if (INTERNAL_MIDDLEWARE[item.name]) {
58
- app.use((0, _common.getRealDefaultMod)(require(`./middleware/${item.name}`))(item.config));
57
+ app.use((0, _common).getRealDefaultMod(require(`./middleware/${item.name}`))(item.config));
59
58
  } else {
60
- app.use((0, _common.getRealDefaultMod)(require(`${cwd}/${_defaultXConfig.default.businessDir}/middleware/${item.name}`))(item.config));
59
+ app.use((0, _common).getRealDefaultMod(require(`${cwd}/${_defaultXConfig.default.businessDir}/middleware/${item.name}`))(item.config));
61
60
  }
62
61
  masterLog(`MIDDLEWARE >>> [${item.name}] launch`);
63
62
  });
64
63
  console.log("");
65
64
  }
66
65
  }
67
- const _default = loadMiddleware;
66
+ var _default = loadMiddleware;
67
+ exports.default = _default;
package/dist/router.js CHANGED
@@ -2,15 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
9
- const _utils = require("@x-drive/utils");
10
- const _common = require("./components/common");
11
- const _defaultXConfig = /*#__PURE__*/ _interopRequireDefault(require("./default-x-config"));
12
- const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
13
- const _fs = /*#__PURE__*/ _interopRequireDefault(require("fs"));
5
+ exports.default = void 0;
6
+ var _utils = require("@x-drive/utils");
7
+ var _common = require("./components/common");
8
+ var _defaultXConfig = _interopRequireDefault(require("./default-x-config"));
9
+ var _path = _interopRequireDefault(require("path"));
10
+ var _fs = _interopRequireDefault(require("fs"));
14
11
  function _interopRequireDefault(obj) {
15
12
  return obj && obj.__esModule ? obj : {
16
13
  default: obj
@@ -63,7 +60,7 @@ function _interopRequireDefault(obj) {
63
60
  var processBusiness = function(modPath, item, middlewares) {
64
61
  var mod = require(_path.default.resolve(modPath));
65
62
  if (mod) {
66
- mod = (0, _common.getRealDefaultMod)(mod);
63
+ mod = (0, _common).getRealDefaultMod(mod);
67
64
  let api_path = modPath.split(API_BUSINESS_DIR);
68
65
  let api;
69
66
  let apiPart;
@@ -78,7 +75,7 @@ function _interopRequireDefault(obj) {
78
75
  api.pop();
79
76
  }
80
77
  // 如果模块返回的是数组,则使用文件名做为方法名,并在 api 上去掉文件名
81
- if ((0, _utils.isArray)(mod)) {
78
+ if ((0, _utils).isArray(mod)) {
82
79
  if (!lastIsIndex) {
83
80
  api.pop();
84
81
  }
@@ -91,9 +88,9 @@ function _interopRequireDefault(obj) {
91
88
  api = buildApi(api.join("/"));
92
89
  }
93
90
  // 是对象则取对应的字段
94
- if ((0, _utils.isObject)(mod)) {
91
+ if ((0, _utils).isObject(mod)) {
95
92
  const subjectMod = mod;
96
- if ((0, _utils.isFunction)(subjectMod.handler) || (0, _utils.isAsyncFunction)(subjectMod.handler)) {
93
+ if ((0, _utils).isFunction(subjectMod.handler) || (0, _utils).isAsyncFunction(subjectMod.handler)) {
97
94
  modName = subjectMod.method || "get";
98
95
  api = subjectMod.api || api;
99
96
  apiPart = api.split("/");
@@ -104,7 +101,7 @@ function _interopRequireDefault(obj) {
104
101
  if (!subjectMod.ignoreApiNameCheck && !IS_API_REGEXP.test(api)) {
105
102
  api = buildApi(api);
106
103
  }
107
- if ((0, _utils.isArray)(subjectMod.middleware)) {
104
+ if ((0, _utils).isArray(subjectMod.middleware)) {
108
105
  mod = [
109
106
  api,
110
107
  ...subjectMod.middleware,
@@ -131,7 +128,7 @@ function _interopRequireDefault(obj) {
131
128
  prevPart = part;
132
129
  }
133
130
  // 直接返回函数则直接绑定
134
- if ((0, _utils.isFunction)(mod) || (0, _utils.isAsyncFunction)(mod)) {
131
+ if ((0, _utils).isFunction(mod) || (0, _utils).isAsyncFunction(mod)) {
135
132
  mod = [
136
133
  api,
137
134
  mod
@@ -144,7 +141,8 @@ function _interopRequireDefault(obj) {
144
141
  }
145
142
  }
146
143
  if (dirMws && dirMws.length) {
147
- let mws = dirMws.map((name)=>(0, _common.getRealDefaultMod)(require(name)));
144
+ let mws = dirMws.map((name)=>(0, _common).getRealDefaultMod(require(name))
145
+ );
148
146
  mod.splice.apply(mod, [
149
147
  1,
150
148
  0,
@@ -158,15 +156,16 @@ function _interopRequireDefault(obj) {
158
156
  };
159
157
  // 业务基本目录
160
158
  var _p = _path.default.resolve(__dirname, API_BUSINESS_DIR);
161
- if ((0, _common.checkFileStat)(_p)) {
159
+ if ((0, _common).checkFileStat(_p)) {
162
160
  walk(_p, {}, processBusiness);
163
161
  }
164
162
  // 支持自定义 api
165
163
  _p = _path.default.resolve(process.cwd(), _defaultXConfig.default.businessDir, API_BUSINESS_DIR);
166
- if (process.cwd() !== __dirname && (0, _common.checkFileStat)(_p)) {
164
+ if (process.cwd() !== __dirname && (0, _common).checkFileStat(_p)) {
167
165
  walk(_p, {}, processBusiness);
168
166
  }
169
167
  processBusiness = null;
170
168
  console.log("");
171
169
  }
172
- const _default = appRouter;
170
+ var _default = appRouter;
171
+ exports.default = _default;
package/dist/server.js CHANGED
@@ -2,85 +2,59 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- boot: ()=>boot,
13
- exit: ()=>exit,
14
- default: ()=>_default
15
- });
5
+ exports.default = exports.exit = exports.boot = exports.app = void 0;
16
6
  require("./global");
17
- const _log = require("./components/log");
18
- const _cron = require("./components/cron");
19
- const _defaultXConfig = /*#__PURE__*/ _interopRequireDefault(require("./default-x-config"));
20
- const _dotFile = require("./dot-file");
21
- const _koaStatic = /*#__PURE__*/ _interopRequireDefault(require("koa-static"));
22
- const _koaRouter = /*#__PURE__*/ _interopRequireDefault(require("koa-router"));
23
- const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
24
- const _koa = /*#__PURE__*/ _interopRequireDefault(require("koa"));
25
- const _config = /*#__PURE__*/ _interopRequireWildcard(require("./config"));
26
- const _custom = /*#__PURE__*/ _interopRequireDefault(require("./custom"));
27
- const _router = /*#__PURE__*/ _interopRequireDefault(require("./router"));
28
- const _cluster = /*#__PURE__*/ _interopRequireDefault(require("./cluster"));
29
- const _middlewares = /*#__PURE__*/ _interopRequireDefault(require("./middlewares"));
30
- const _badRequest = /*#__PURE__*/ _interopRequireDefault(require("./middleware/bad-request"));
7
+ require("./init-env");
8
+ var _log = require("./components/log");
9
+ var _cron = require("./components/cron");
10
+ var _defaultXConfig = _interopRequireDefault(require("./default-x-config"));
11
+ var _dotFile = require("./dot-file");
12
+ var _koaStatic = _interopRequireDefault(require("koa-static"));
13
+ var _koaRouter = _interopRequireDefault(require("koa-router"));
14
+ var _path = _interopRequireDefault(require("path"));
15
+ var _koa = _interopRequireDefault(require("koa"));
16
+ var _config = _interopRequireWildcard(require("./config"));
17
+ var _custom = _interopRequireDefault(require("./custom"));
18
+ var _router = _interopRequireDefault(require("./router"));
19
+ var _cluster = _interopRequireDefault(require("./cluster"));
20
+ var _middlewares = _interopRequireDefault(require("./middlewares"));
21
+ var _badRequest = _interopRequireDefault(require("./middleware/bad-request"));
31
22
  function _interopRequireDefault(obj) {
32
23
  return obj && obj.__esModule ? obj : {
33
24
  default: obj
34
25
  };
35
26
  }
36
- function _getRequireWildcardCache(nodeInterop) {
37
- if (typeof WeakMap !== "function") return null;
38
- var cacheBabelInterop = new WeakMap();
39
- var cacheNodeInterop = new WeakMap();
40
- return (_getRequireWildcardCache = function(nodeInterop) {
41
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
42
- })(nodeInterop);
43
- }
44
- function _interopRequireWildcard(obj, nodeInterop) {
45
- if (!nodeInterop && obj && obj.__esModule) {
27
+ function _interopRequireWildcard(obj) {
28
+ if (obj && obj.__esModule) {
46
29
  return obj;
47
- }
48
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
49
- return {
50
- default: obj
51
- };
52
- }
53
- var cache = _getRequireWildcardCache(nodeInterop);
54
- if (cache && cache.has(obj)) {
55
- return cache.get(obj);
56
- }
57
- var newObj = {};
58
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
59
- for(var key in obj){
60
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
61
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
62
- if (desc && (desc.get || desc.set)) {
63
- Object.defineProperty(newObj, key, desc);
64
- } else {
65
- newObj[key] = obj[key];
30
+ } else {
31
+ var newObj = {};
32
+ if (obj != null) {
33
+ for(var key in obj){
34
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
35
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
36
+ if (desc.get || desc.set) {
37
+ Object.defineProperty(newObj, key, desc);
38
+ } else {
39
+ newObj[key] = obj[key];
40
+ }
41
+ }
66
42
  }
67
43
  }
44
+ newObj.default = obj;
45
+ return newObj;
68
46
  }
69
- newObj.default = obj;
70
- if (cache) {
71
- cache.set(obj, newObj);
72
- }
73
- return newObj;
74
47
  }
75
48
  process.env.TZ = _config.default.timezone;
76
49
  const logger = _log.globalLog.getLogger("system");
77
- (0, _dotFile.processDotFile)(_config.default.env, logger);
50
+ (0, _dotFile).processDotFile(_config.default.env, logger);
78
51
  // 只在 master 上输出的日志
79
52
  global.masterLog = _config.log;
80
53
  // 服务实例
81
54
  const app = new _koa.default();
82
55
  /**
83
56
  * 获取应用实例对象
57
+ * @deprecated v1.7.0 后将弃用,请直接从模块中引用
84
58
  * @return 实例对象
85
59
  */ global.getApp = function() {
86
60
  return app;
@@ -90,15 +64,15 @@ const app = new _koa.default();
90
64
  app.poweredBy = false;
91
65
  if (_config.default.custom) {
92
66
  // 自定义初始化业务
93
- (0, _custom.default)();
67
+ (0, _custom).default();
94
68
  }
95
69
  // 加载中间件
96
- (0, _middlewares.default)(app);
70
+ (0, _middlewares).default(app);
97
71
  const koaRouter = new _koaRouter.default();
98
72
  // 路由中间件
99
73
  app.use(koaRouter.routes());
100
74
  // 具体路由
101
- (0, _router.default)(koaRouter);
75
+ (0, _router).default(koaRouter);
102
76
  // 静态文件服务
103
77
  var staticServeOpts = {};
104
78
  if (_config.default.isProd) {
@@ -117,25 +91,31 @@ staticServeOpts.setHeaders = function(res, path) {
117
91
  }
118
92
  }
119
93
  };
120
- app.use((0, _koaStatic.default)(_path.default.resolve(process.cwd(), _config.default.root), staticServeOpts));
94
+ app.use((0, _koaStatic).default(_path.default.resolve(process.cwd(), _config.default.root), staticServeOpts));
121
95
  // 异常状态处理中间件
122
96
  app.use(_badRequest.default);
123
97
  if (_config.default.enableCron) {
124
- // 定时任务
125
- (0, _cron.on)(_path.default.resolve(process.cwd(), _defaultXConfig.default.businessDir, "cron"));
98
+ if (_config.default.isMaster || _config.default.enableWorkerCron) {
99
+ // 定时任务
100
+ (0, _cron).on(_path.default.resolve(process.cwd(), _defaultXConfig.default.businessDir, "cron"));
101
+ }
126
102
  }
127
103
  /**启动服务 */ function boot() {
128
- (0, _cluster.default)();
104
+ (0, _cluster).default();
129
105
  process.on("uncaughtException", (err)=>{
130
- logger.error("uncaughtException:\n", err.stack);
106
+ logger.error(`uncaughtException:${err.message}\n`, err.stack);
131
107
  }).on("unhandledRejection", (err)=>{
132
- logger.error("unhandledRejection:\n", err.stack);
108
+ logger.error(`unhandledRejection:${err.message}\n`, err.stack);
133
109
  });
134
110
  }
135
111
  /**退出服务 */ function exit() {
136
112
  process.exit();
137
113
  }
138
- const _default = app;
114
+ var _default = app;
115
+ exports.default = _default;
139
116
  if (require.main === module) {
140
117
  boot();
141
118
  }
119
+ exports.app = app;
120
+ exports.boot = boot;
121
+ exports.exit = exit;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@x-9lab/xlab",
3
- "version": "1.5.3",
3
+ "version": "1.6.0",
4
4
  "description": "9lab 服务端模块",
5
- "versionDesc": "静态文件服务支持跨域",
5
+ "versionDesc": "日志信息输出优化",
6
6
  "scripts": {
7
7
  "dev": "swc src -D ./src/bin --config-file .swcrc -d dist -w",
8
8
  "compile": "swc src -D ./src/bin --config-file .swcrc -d dist",
@@ -20,15 +20,15 @@
20
20
  "@types"
21
21
  ],
22
22
  "dependencies": {
23
- "koa": "2.13.4",
23
+ "koa": "3.1.2",
24
24
  "cron": "1.8.2",
25
25
  "log4js": "^1.1.1",
26
26
  "liftoff": "4.0.0",
27
27
  "minimist": "1.2.6",
28
28
  "koa-static": "5.0.0",
29
- "koa-router": "11.0.1",
30
- "koa-compress": "5.1.0",
31
- "@x-drive/utils": "1.1.24"
29
+ "koa-router": "14.0.0",
30
+ "koa-compress": "5.2.1",
31
+ "@x-drive/utils": "1.1.32"
32
32
  },
33
33
  "devDependencies": {
34
34
  "tslib": "2.3.0",
@@ -38,11 +38,11 @@
38
38
  "chokidar": "3.5.3",
39
39
  "@swc/cli": "0.1.57",
40
40
  "typescript": "4.3.4",
41
- "@swc/core": "1.2.212",
41
+ "@swc/core": "1.2.171",
42
42
  "@types/log4js": "2.3.5",
43
43
  "@types/node": "16.11.40",
44
- "@types/koa-static": "4.0.2",
45
- "@types/koa-router": "7.4.4",
44
+ "@types/koa-static": "4.0.4",
45
+ "@types/koa-router": "7.4.9",
46
46
  "@x-drive/changelog": "1.1.6"
47
47
  },
48
48
  "bin": {