@jiangnian520/midway-operation-log 1.0.2 → 1.0.3

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.
@@ -1,10 +1,10 @@
1
1
  import type { IMiddleware } from '@midwayjs/core';
2
2
  import type { NextFunction, Context } from '@midwayjs/koa';
3
3
  import type { OperationLogConfig } from '../interface';
4
- import type { LogQueue } from '../queue/queue.interface';
4
+ import { LogQueueService } from '../queue/queue.service';
5
5
  export declare class ReportMiddleware implements IMiddleware<Context, NextFunction> {
6
6
  logConfig: OperationLogConfig;
7
- logQueue: LogQueue;
7
+ logQueueService: LogQueueService;
8
8
  resolve(): (ctx: Context, next: NextFunction) => Promise<any>;
9
9
  static getName(): string;
10
10
  }
@@ -37,7 +37,7 @@ let ReportMiddleware = class ReportMiddleware {
37
37
  const logCfg = (logMeta.options?.metadata?.log ?? {});
38
38
  const methodName = logMeta.methodName;
39
39
  const decoratorOn = logCfg.needLog !== false;
40
- if ((decoratorOn || operStatus === 1) && this.logQueue) {
40
+ if ((decoratorOn || operStatus === 1) && this.logQueueService) {
41
41
  const network = (0, index_1.getNetworkInfo)(ctx);
42
42
  let jsonResult = null;
43
43
  if (logCfg.logResult !== false || operStatus === 1) {
@@ -66,7 +66,7 @@ let ReportMiddleware = class ReportMiddleware {
66
66
  endTime: new Date(),
67
67
  costTime: Date.now() - st,
68
68
  };
69
- this.logQueue.push(ctx, logData).catch((err) => {
69
+ this.logQueueService.push(ctx, logData).catch((err) => {
70
70
  ctx.logger.error('[OperationLog] 入队失败', err);
71
71
  });
72
72
  }
@@ -84,10 +84,10 @@ __decorate([
84
84
  __metadata("design:type", Object)
85
85
  ], ReportMiddleware.prototype, "logConfig", void 0);
86
86
  __decorate([
87
- (0, core_1.Inject)(queue_service_1.LOG_QUEUE_TOKEN),
88
- __metadata("design:type", Object)
89
- ], ReportMiddleware.prototype, "logQueue", void 0);
87
+ (0, core_1.Inject)(),
88
+ __metadata("design:type", queue_service_1.LogQueueService)
89
+ ], ReportMiddleware.prototype, "logQueueService", void 0);
90
90
  exports.ReportMiddleware = ReportMiddleware = __decorate([
91
91
  (0, core_1.Middleware)()
92
92
  ], ReportMiddleware);
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0Lm1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9yZXBvcnQubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBNEQ7QUFJNUQsMENBQTBGO0FBQzFGLDBEQUF5RDtBQUlsRCxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQU96QixPQUFPO1FBQ0gsT0FBTyxLQUFLLEVBQUUsR0FBWSxFQUFFLElBQWtCLEVBQUUsRUFBRTtZQUM5QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNuQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDbkIsSUFBSSxRQUFRLEdBQWtCLElBQUksQ0FBQztZQUVuQyxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNqQixDQUFDO1lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztnQkFDbEIsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDZixRQUFRLEdBQUcsS0FBSyxFQUFFLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU0sS0FBSyxDQUFDO1lBQ2hCLENBQUM7b0JBQVMsQ0FBQztnQkFDUCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztnQkFDeEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDVixNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQWUsQ0FBQztvQkFDcEUs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
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0Lm1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9yZXBvcnQubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBNEQ7QUFJNUQsMENBQTBGO0FBQzFGLDBEQUF5RDtBQUdsRCxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQU96QixPQUFPO1FBQ0gsT0FBTyxLQUFLLEVBQUUsR0FBWSxFQUFFLElBQWtCLEVBQUUsRUFBRTtZQUM5QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNuQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDbkIsSUFBSSxRQUFRLEdBQWtCLElBQUksQ0FBQztZQUVuQyxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNqQixDQUFDO1lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztnQkFDbEIsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDZixRQUFRLEdBQUcsS0FBSyxFQUFFLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU0sS0FBSyxDQUFDO1lBQ2hCLENBQUM7b0JBQVMsQ0FBQztnQkFDUCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztnQkFDeEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDVixNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQWUsQ0FBQztvQkFDcEUs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
@@ -41,6 +41,6 @@ __decorate([
41
41
  __metadata("design:type", Object)
42
42
  ], LogQueueService.prototype, "appCtx", void 0);
43
43
  exports.LogQueueService = LogQueueService = __decorate([
44
- (0, core_1.Provide)(exports.LOG_QUEUE_TOKEN)
44
+ (0, core_1.Provide)() // ✅ 这里去掉参数,使用默认的类名注册
45
45
  ], LogQueueService);
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9xdWV1ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQUE2RTtBQUk3RSxpREFBZ0Q7QUFFbkMsUUFBQSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7QUFHMUMsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQVV4QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVEsRUFBRSxPQUF5QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBVyxlQUFlLENBQUMsQ0FBQztZQUV6RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7WUFFRCxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNMLENBQUM7Q0FDSixDQUFBO0FBdkJZLDBDQUFlO0FBRXhCO0lBREMsSUFBQSxhQUFNLEVBQUMsY0FBYyxDQUFDOztrREFDTztBQUc5QjtJQURDLElBQUEsYUFBTSxHQUFFOzhCQUNJLDZCQUFjO29EQUFDO0FBRzVCO0lBREMsSUFBQSx5QkFBa0IsR0FBRTs7K0NBQ0k7MEJBUmhCLGVBQWU7SUFEM0IsSUFBQSxjQUFPLEVBQUMsdUJBQWUsQ0FBQztHQUNaLGVBQWUsQ0F1QjNCIn0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9xdWV1ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQUE2RTtBQUk3RSxpREFBZ0Q7QUFFbkMsUUFBQSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7QUFHMUMsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQVV4QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVEsRUFBRSxPQUF5QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBVyxlQUFlLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7WUFDRCxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNMLENBQUM7Q0FDSixDQUFBO0FBckJZLDBDQUFlO0FBRXhCO0lBREMsSUFBQSxhQUFNLEVBQUMsY0FBYyxDQUFDOztrREFDTztBQUc5QjtJQURDLElBQUEsYUFBTSxHQUFFOzhCQUNJLDZCQUFjO29EQUFDO0FBRzVCO0lBREMsSUFBQSx5QkFBa0IsR0FBRTs7K0NBQ0k7MEJBUmhCLGVBQWU7SUFEM0IsSUFBQSxjQUFPLEdBQUUsQ0FBQyxxQkFBcUI7R0FDbkIsZUFBZSxDQXFCM0IifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jiangnian520/midway-operation-log",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "main": "dist/index.js",
5
5
  "typings": "index.d.ts",
6
6
  "files": [