cnpmcore
Version:
40 lines • 2.98 kB
JavaScript
;
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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsyncTimer = void 0;
const perf_hooks_1 = require("perf_hooks");
const aop_1 = require("@eggjs/tegg/aop");
const tegg_1 = require("@eggjs/tegg");
// auto print async function call performance timer log into logger
let AsyncTimer = class AsyncTimer {
constructor() {
this.succeed = true;
}
async beforeCall() {
this.start = perf_hooks_1.performance.now();
}
async afterThrow() {
this.succeed = false;
}
async afterFinally(ctx) {
const ms = Math.floor((perf_hooks_1.performance.now() - this.start) * 1000) / 1000;
this.logger.info('[%s] [%s:%s|%s]', ms, ctx.that.constructor.name, ctx.method, this.succeed ? 'T' : 'F');
}
};
exports.AsyncTimer = AsyncTimer;
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", Object)
], AsyncTimer.prototype, "logger", void 0);
exports.AsyncTimer = AsyncTimer = __decorate([
(0, aop_1.Advice)()
], AsyncTimer);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXN5bmNUaW1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9jb21tb24vYW9wL0FzeW5jVGltZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlDO0FBQ3pDLHlDQUFpRTtBQUNqRSxzQ0FBcUM7QUFHckMsbUVBQW1FO0FBRTVELElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVU7SUFBaEI7UUFJRyxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBZXpCLENBQUM7SUFiQyxLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFrQjtRQUNuQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsd0JBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUNoQyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0YsQ0FBQTtBQW5CWSxnQ0FBVTtBQUVKO0lBRGhCLElBQUEsYUFBTSxHQUFFOzswQ0FDMEI7cUJBRnhCLFVBQVU7SUFEdEIsSUFBQSxZQUFNLEdBQUU7R0FDSSxVQUFVLENBbUJ0QiJ9