UNPKG

cnpmcore

Version:

Private NPM Registry for Enterprise

37 lines 3.2 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { performance } from 'node:perf_hooks'; import { Inject } from 'egg'; import { Advice } from 'egg/aop'; const START = Symbol('AsyncTimer#start'); const SUCCEED = Symbol('AsyncTimer#succeed'); // auto print async function call performance timer log into logger let AsyncTimer = class AsyncTimer { async beforeCall(ctx) { ctx.set(START, performance.now()); ctx.set(SUCCEED, true); } async afterThrow(ctx) { ctx.set(SUCCEED, false); } async afterFinally(ctx) { const ms = Math.floor((performance.now() - ctx.get(START)) * 1000) / 1000; this.logger.info('[%s] [%s:%s|%s]', ms, ctx.that.constructor.name, ctx.method, ctx.get(SUCCEED) ? 'T' : 'F'); } }; __decorate([ Inject(), __metadata("design:type", Function) ], AsyncTimer.prototype, "logger", void 0); AsyncTimer = __decorate([ Advice() ], AsyncTimer); export { AsyncTimer }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXN5bmNUaW1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vYW9wL0FzeW5jVGltZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxNQUFNLEVBQVUsTUFBTSxLQUFLLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBb0MsTUFBTSxTQUFTLENBQUM7QUFFbkUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFN0MsbUVBQW1FO0FBRTVELElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVU7SUFJckIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFrQjtRQUNqQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFrQjtRQUNqQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFrQjtRQUNuQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0csQ0FBQztDQUNGLENBQUE7QUFma0I7SUFEaEIsTUFBTSxFQUFFOzswQ0FDdUI7QUFGckIsVUFBVTtJQUR0QixNQUFNLEVBQUU7R0FDSSxVQUFVLENBaUJ0QiJ9