@midwayjs/web 3.12.10 → 3.13.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.
- package/dist/config/config.default.js +27 -2
- package/dist/interface.d.ts +5 -2
- package/dist/logger.js +52 -48
- package/index.d.ts +2 -0
- package/package.json +5 -5
|
@@ -4,11 +4,12 @@ const path = require("path");
|
|
|
4
4
|
const mkdirp = require("mkdirp");
|
|
5
5
|
const os = require("os");
|
|
6
6
|
const fs = require("fs");
|
|
7
|
+
const loggerModule = require("@midwayjs/logger");
|
|
7
8
|
exports.default = appInfo => {
|
|
8
9
|
const exports = {};
|
|
9
10
|
exports.rundir = path.join(appInfo.appDir, 'run');
|
|
10
|
-
//
|
|
11
|
-
|
|
11
|
+
// v2 格式
|
|
12
|
+
let defaultLoggerConfig = {
|
|
12
13
|
clients: {
|
|
13
14
|
appLogger: {
|
|
14
15
|
fileLogName: 'midway-web.log',
|
|
@@ -19,6 +20,30 @@ exports.default = appInfo => {
|
|
|
19
20
|
},
|
|
20
21
|
},
|
|
21
22
|
};
|
|
23
|
+
// v3 格式
|
|
24
|
+
if (loggerModule['formatLegacyLoggerOptions']) {
|
|
25
|
+
defaultLoggerConfig = {
|
|
26
|
+
clients: {
|
|
27
|
+
appLogger: {
|
|
28
|
+
transports: {
|
|
29
|
+
file: {
|
|
30
|
+
fileLogName: 'midway-web.log',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
aliasName: 'logger',
|
|
34
|
+
},
|
|
35
|
+
agentLogger: {
|
|
36
|
+
transports: {
|
|
37
|
+
file: {
|
|
38
|
+
fileLogName: 'midway-agent.log',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// 修改默认的日志名
|
|
46
|
+
exports.midwayLogger = defaultLoggerConfig;
|
|
22
47
|
exports.egg = {
|
|
23
48
|
dumpConfig: true,
|
|
24
49
|
contextLoggerFormat: info => {
|
package/dist/interface.d.ts
CHANGED
|
@@ -5,11 +5,13 @@ import { DefaultState, Middleware } from 'koa';
|
|
|
5
5
|
import { ILogger, LoggerOptions } from '@midwayjs/logger';
|
|
6
6
|
export declare const RUN_IN_AGENT_KEY = "egg:run_in_agent";
|
|
7
7
|
export declare const EGG_AGENT_APP_KEY = "egg_agent_app";
|
|
8
|
+
export interface State extends DefaultState {
|
|
9
|
+
}
|
|
8
10
|
export interface IMidwayWebBaseApplication {
|
|
9
11
|
applicationContext: IMidwayContainer;
|
|
10
12
|
getLogger(name?: string): ILogger;
|
|
11
13
|
getCoreLogger(): ILogger;
|
|
12
|
-
generateMiddleware?(middlewareId: any): Promise<Middleware<
|
|
14
|
+
generateMiddleware?(middlewareId: any): Promise<Middleware<State, EggContext>>;
|
|
13
15
|
createLogger(name: string, options: LoggerOptions): ILogger;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
@@ -56,6 +58,7 @@ export interface Context<ResponseBodyT = unknown> extends IMidwayWebContext<Resp
|
|
|
56
58
|
*/
|
|
57
59
|
[_: string]: any;
|
|
58
60
|
};
|
|
61
|
+
state: State;
|
|
59
62
|
}
|
|
60
63
|
/**
|
|
61
64
|
* @deprecated since version 3.0.0
|
|
@@ -112,7 +115,7 @@ export interface IMidwayWebConfigurationOptions extends IConfigurationOptions {
|
|
|
112
115
|
* @deprecated since version 3.0.0
|
|
113
116
|
* Please use IMiddleware from '@midwayjs/core'
|
|
114
117
|
*/
|
|
115
|
-
export type MidwayWebMiddleware = Middleware<
|
|
118
|
+
export type MidwayWebMiddleware = Middleware<State, Context>;
|
|
116
119
|
/**
|
|
117
120
|
* @deprecated since version 3.0.0
|
|
118
121
|
* Please use IMiddleware from '@midwayjs/core'
|
package/dist/logger.js
CHANGED
|
@@ -3,16 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createLoggers = void 0;
|
|
4
4
|
const logger_1 = require("@midwayjs/logger");
|
|
5
5
|
const path_1 = require("path");
|
|
6
|
-
const fs_1 = require("fs");
|
|
7
|
-
const utils_1 = require("./utils");
|
|
8
|
-
const os = require("os");
|
|
9
6
|
const core_1 = require("@midwayjs/core");
|
|
10
7
|
const util_1 = require("util");
|
|
8
|
+
const core_2 = require("@midwayjs/core");
|
|
9
|
+
const loggerModule = require("@midwayjs/logger");
|
|
10
|
+
const isV3Logger = loggerModule['formatLegacyLoggerOptions'];
|
|
11
11
|
const debug = (0, util_1.debuglog)('midway:debug');
|
|
12
|
-
const isWindows = os.platform() === 'win32';
|
|
13
|
-
function isEmptyFile(p) {
|
|
14
|
-
return (0, fs_1.statSync)(p).size === 0;
|
|
15
|
-
}
|
|
16
12
|
const levelTransform = level => {
|
|
17
13
|
// egg 自定义日志,不设置 level,默认是 info
|
|
18
14
|
if (!level) {
|
|
@@ -42,27 +38,6 @@ const levelTransform = level => {
|
|
|
42
38
|
return 'silly';
|
|
43
39
|
}
|
|
44
40
|
};
|
|
45
|
-
function checkEggLoggerExistsAndBackup(dir, fileName) {
|
|
46
|
-
const file = (0, path_1.isAbsolute)(fileName) ? fileName : (0, path_1.join)(dir, fileName);
|
|
47
|
-
try {
|
|
48
|
-
if ((0, fs_1.existsSync)(file) && !(0, fs_1.lstatSync)(file).isSymbolicLink()) {
|
|
49
|
-
// 如果是空文件,则直接删了,否则加入备份队列
|
|
50
|
-
if (isEmptyFile(file)) {
|
|
51
|
-
// midway 的软链在 windows 底下也不会创建出来,在 windows 底下就不做文件删除了
|
|
52
|
-
if (!isWindows) {
|
|
53
|
-
(0, fs_1.unlinkSync)(file);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
const timeFormat = (0, utils_1.getCurrentDateString)();
|
|
58
|
-
(0, fs_1.renameSync)(file, file + '.' + timeFormat + '_eggjs_bak');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch (err) {
|
|
63
|
-
// ignore
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
41
|
function cleanUndefinedProperty(obj) {
|
|
67
42
|
Object.keys(obj).forEach(key => {
|
|
68
43
|
if (obj[key] === undefined) {
|
|
@@ -110,9 +85,10 @@ class MidwayLoggers extends Map {
|
|
|
110
85
|
}
|
|
111
86
|
}
|
|
112
87
|
const loggerConfig = configService.getConfiguration('midwayLogger');
|
|
88
|
+
// 这里利用了 loggers 缓存的特性,提前初始化 logger
|
|
113
89
|
if (loggerConfig) {
|
|
114
90
|
for (const id of Object.keys(loggerConfig.clients)) {
|
|
115
|
-
const config =
|
|
91
|
+
const config = (0, core_2.extend)(true, {}, loggerConfig['default'], loggerConfig.clients[id]);
|
|
116
92
|
this.createLogger(config, id);
|
|
117
93
|
}
|
|
118
94
|
}
|
|
@@ -121,17 +97,18 @@ class MidwayLoggers extends Map {
|
|
|
121
97
|
this.set('logger', logger_1.loggers.getLogger('appLogger'));
|
|
122
98
|
}
|
|
123
99
|
// 初始化日志服务
|
|
124
|
-
this.loggerService = (0, core_1.getCurrentApplicationContext)().get(core_1.MidwayLoggerService, [
|
|
100
|
+
this.loggerService = (0, core_1.getCurrentApplicationContext)().get(core_1.MidwayLoggerService, [
|
|
101
|
+
(0, core_1.getCurrentApplicationContext)(),
|
|
102
|
+
{
|
|
103
|
+
loggerFactory: logger_1.loggers,
|
|
104
|
+
},
|
|
105
|
+
]);
|
|
125
106
|
// 防止循环枚举报错
|
|
126
107
|
Object.defineProperty(this, 'loggerService', {
|
|
127
108
|
enumerable: false,
|
|
128
109
|
});
|
|
129
110
|
}
|
|
130
111
|
createLogger(options, loggerKey) {
|
|
131
|
-
/**
|
|
132
|
-
* 提前备份 egg 日志
|
|
133
|
-
*/
|
|
134
|
-
checkEggLoggerExistsAndBackup(options.dir, options.fileLogName);
|
|
135
112
|
let logger = logger_1.loggers.createLogger(loggerKey, options);
|
|
136
113
|
// overwrite values for pandora collect
|
|
137
114
|
logger.values = () => {
|
|
@@ -152,13 +129,20 @@ class MidwayLoggers extends Map {
|
|
|
152
129
|
return logger;
|
|
153
130
|
}
|
|
154
131
|
disableConsole() {
|
|
132
|
+
var _a;
|
|
155
133
|
for (const value of this.values()) {
|
|
156
|
-
if (value === null || value === void 0 ? void 0 : value
|
|
157
|
-
value
|
|
134
|
+
if (value === null || value === void 0 ? void 0 : value['disableConsole']) {
|
|
135
|
+
value.disableConsole();
|
|
158
136
|
}
|
|
159
137
|
else if (value.disable) {
|
|
160
138
|
value.disable('console');
|
|
161
139
|
}
|
|
140
|
+
else if (isV3Logger) {
|
|
141
|
+
// v3
|
|
142
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
143
|
+
// @ts-ignore
|
|
144
|
+
(_a = value.get('console')) === null || _a === void 0 ? void 0 : _a.level = 'none';
|
|
145
|
+
}
|
|
162
146
|
}
|
|
163
147
|
}
|
|
164
148
|
reload() {
|
|
@@ -170,7 +154,7 @@ class MidwayLoggers extends Map {
|
|
|
170
154
|
}
|
|
171
155
|
}
|
|
172
156
|
transformEggLogger(eggCustomLogger, midwayLoggerConfig) {
|
|
173
|
-
var _a, _b, _c, _d;
|
|
157
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
174
158
|
const transformLoggerConfig = {
|
|
175
159
|
midwayLogger: {
|
|
176
160
|
clients: {},
|
|
@@ -186,22 +170,42 @@ class MidwayLoggers extends Map {
|
|
|
186
170
|
// 绝对路径,单独处理
|
|
187
171
|
options.dir = (0, path_1.dirname)(file);
|
|
188
172
|
options.fileLogName = (0, path_1.basename)(file);
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
173
|
+
if (isV3Logger) {
|
|
174
|
+
options.auditFileDir =
|
|
175
|
+
((_c = (_b = midwayLoggerConfig === null || midwayLoggerConfig === void 0 ? void 0 : midwayLoggerConfig.transports) === null || _b === void 0 ? void 0 : _b.file) === null || _c === void 0 ? void 0 : _c['auditFileDir']) === '.audit'
|
|
176
|
+
? (0, path_1.join)((_e = (_d = midwayLoggerConfig === null || midwayLoggerConfig === void 0 ? void 0 : midwayLoggerConfig.transports) === null || _d === void 0 ? void 0 : _d.file) === null || _e === void 0 ? void 0 : _e['dir'], '.audit')
|
|
177
|
+
: (_g = (_f = midwayLoggerConfig === null || midwayLoggerConfig === void 0 ? void 0 : midwayLoggerConfig.transports) === null || _f === void 0 ? void 0 : _f.file) === null || _g === void 0 ? void 0 : _g['auditFileDir'];
|
|
178
|
+
options.errorDir =
|
|
179
|
+
(_k = (_j = (_h = midwayLoggerConfig === null || midwayLoggerConfig === void 0 ? void 0 : midwayLoggerConfig.transports) === null || _h === void 0 ? void 0 : _h.error) === null || _j === void 0 ? void 0 : _j['dir']) !== null && _k !== void 0 ? _k : (_m = (_l = midwayLoggerConfig === null || midwayLoggerConfig === void 0 ? void 0 : midwayLoggerConfig.transports) === null || _l === void 0 ? void 0 : _l.file) === null || _m === void 0 ? void 0 : _m['dir'];
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
options.auditFileDir =
|
|
183
|
+
midwayLoggerConfig['auditFileDir'] === '.audit'
|
|
184
|
+
? (0, path_1.join)(midwayLoggerConfig['dir'], '.audit')
|
|
185
|
+
: midwayLoggerConfig['auditFileDir'];
|
|
186
|
+
options.errorDir =
|
|
187
|
+
(_o = midwayLoggerConfig['errorDir']) !== null && _o !== void 0 ? _o : midwayLoggerConfig['dir'];
|
|
188
|
+
}
|
|
195
189
|
}
|
|
196
190
|
else {
|
|
197
191
|
// 相对路径,使用默认的 dir 即可
|
|
198
192
|
options.fileLogName = file;
|
|
199
193
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
194
|
+
// v3 logger,格式化一下 options
|
|
195
|
+
if (isV3Logger) {
|
|
196
|
+
transformLoggerConfig.midwayLogger.clients[name] = loggerModule['formatLegacyLoggerOptions']({
|
|
197
|
+
level: levelTransform((_p = eggCustomLogger[name]) === null || _p === void 0 ? void 0 : _p.level),
|
|
198
|
+
consoleLevel: levelTransform((_q = eggCustomLogger[name]) === null || _q === void 0 ? void 0 : _q.consoleLevel),
|
|
199
|
+
...options,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
transformLoggerConfig.midwayLogger.clients[name] = {
|
|
204
|
+
level: levelTransform((_r = eggCustomLogger[name]) === null || _r === void 0 ? void 0 : _r.level),
|
|
205
|
+
consoleLevel: levelTransform((_s = eggCustomLogger[name]) === null || _s === void 0 ? void 0 : _s.consoleLevel),
|
|
206
|
+
...options,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
205
209
|
cleanUndefinedProperty(transformLoggerConfig.midwayLogger.clients[name]);
|
|
206
210
|
}
|
|
207
211
|
return transformLoggerConfig;
|
package/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
IMidwayWebBaseApplication,
|
|
7
7
|
IMidwayWebConfigurationOptions,
|
|
8
8
|
Context as EggContext,
|
|
9
|
+
State,
|
|
9
10
|
} from './dist';
|
|
10
11
|
import { ILogger, LoggerOptions } from '@midwayjs/logger';
|
|
11
12
|
import { EggAppConfig } from 'egg';
|
|
@@ -30,6 +31,7 @@ declare module 'egg' {
|
|
|
30
31
|
interface Context<ResponseBodyT = any> extends IMidwayBaseContext {
|
|
31
32
|
getLogger(name?: string): ILogger;
|
|
32
33
|
forward: (url: string) => void;
|
|
34
|
+
state: State;
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@midwayjs/web",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.13.0",
|
|
4
4
|
"description": "Midway Web Framework for Egg.js",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
],
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@midwayjs/logger": "^
|
|
32
|
-
"@midwayjs/mock": "^3.
|
|
31
|
+
"@midwayjs/logger": "^3.0.0",
|
|
32
|
+
"@midwayjs/mock": "^3.13.0",
|
|
33
33
|
"dayjs": "1.11.10",
|
|
34
34
|
"egg-logger": "2.9.1",
|
|
35
35
|
"egg-mock": "4.2.1",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@eggjs/router": "^2.0.0",
|
|
48
|
-
"@midwayjs/core": "^3.
|
|
48
|
+
"@midwayjs/core": "^3.13.0",
|
|
49
49
|
"egg": "^2.28.0",
|
|
50
50
|
"egg-cluster": "^1.27.1",
|
|
51
51
|
"find-up": "5.0.0",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"engines": {
|
|
61
61
|
"node": ">=12"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "9f55734afa5b08dcf46bc89493ec8edaa8c6202b"
|
|
64
64
|
}
|