UNPKG

lakutata

Version:

An IoC-based universal application framework.

206 lines (129 loc) 5.26 kB
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */ "use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const e = require("node:perf_hooks"); const i = require("../../../vendor/Package.internal.53.cjs"); const r = require("../../lib/core/Component.cjs"); require("../../../vendor/Package.internal.3.cjs"); require("../../../vendor/Package.internal.4.cjs"); require("../../lib/base/async-constructor/AsyncConstructor.cjs"); require("../../lib/base/async-constructor/Append.cjs"); require("../../lib/helpers/IsPromiseLike.cjs"); require("../../lib/helpers/IsPromise.cjs"); require("util/types"); require("../../decorators/di/Lifetime.cjs"); require("../../lib/base/internal/ObjectLifetime.cjs"); require("../../constants/DIMetadataKey.cjs"); require("../../../vendor/Package.internal.1.cjs"); require("../../../vendor/Package.internal.2.cjs"); require("../../exceptions/di/LifetimeLockedException.cjs"); require("../../lib/base/abstracts/Exception.cjs"); require("../../../vendor/Package.internal.5.cjs"); require("../../lib/helpers/As.cjs"); require("../../../vendor/Package.internal.6.cjs"); require("../../lib/base/internal/ThrowWarning.cjs"); require("../../lib/helpers/Templating.cjs"); require("../../lib/base/internal/CamelCase.cjs"); require("../../lib/helpers/NoCase.cjs"); require("../../lib/helpers/DevNull.cjs"); require("../../exceptions/MethodNotFoundException.cjs"); require("../../lib/ioc/DependencyInjectionContainer.cjs"); require("util"); require("../../lib/ioc/Errors.cjs"); require("../../exceptions/di/DependencyInjectionException.cjs"); require("../../lib/base/internal/ConstructorSymbol.cjs"); require("node:crypto"); require("../../../vendor/Package.internal.7.cjs"); require("../../lib/base/internal/DataValidator.cjs"); require("node:util/types"); require("../../lib/validation/VLD.cjs"); require("url"); require("../../exceptions/dto/InvalidValueException.cjs"); require("../../../vendor/Package.internal.8.cjs"); require("../../lib/helpers/IsHtml.cjs"); require("../../lib/helpers/IsXML.cjs"); require("../../constants/DTOMetadataKey.cjs"); require("../../lib/helpers/ObjectConstructor.cjs"); require("../../lib/helpers/ObjectParentConstructors.cjs"); require("../../lib/helpers/ObjectParentConstructor.cjs"); require("../../lib/helpers/ObjectPrototype.cjs"); require("../../lib/ioc/InjectionMode.cjs"); require("../../lib/ioc/Lifetime.cjs"); require("../../lib/ioc/ListModules.cjs"); require("os"); require("path"); require("stream"); require("events"); require("fs"); require("../../lib/ioc/Utils.cjs"); require("../../lib/ioc/FunctionTokenizer.cjs"); require("../../lib/ioc/LoadModules.cjs"); require("../../lib/ioc/Resolvers.cjs"); require("../../lib/ioc/ParamParser.cjs"); require("../../lib/base/internal/ObjectWeakRefs.cjs"); require("../../lib/base/internal/ConfigurableRecordsInjection.cjs"); require("../../lib/base/internal/ObjectConfiguration.cjs"); require("../../lib/base/internal/ObjectInjection.cjs"); require("../../lib/base/internal/ObjectContainer.cjs"); require("../../decorators/dto/Expect.cjs"); require("../../decorators/dto/IndexSignature.cjs"); require("../../decorators/dto/Accept.cjs"); require("../../lib/base/internal/MethodValidation.cjs"); require("../../exceptions/dto/InvalidMethodAcceptException.cjs"); require("../../exceptions/dto/InvalidMethodReturnException.cjs"); require("../../lib/helpers/IsEmptyObject.cjs"); require("../../lib/base/EventEmitter.cjs"); require("../../lib/core/Provider.cjs"); class HttpRequestMonitor extends r.Component { constructor() { super(...arguments); this.#e = 2; this.#i = 65535; this.#r = 0; this.#t = 0; this.#s = []; this.observer = new e.PerformanceObserver(e => { const i = e.getEntries()[0]; const r = parseFloat(i.duration.toFixed(this.#e)); this.#s.push(r); if (this.#s.length > this.#i) this.#s.shift(); if (!this.#r) this.#r = r; this.#r = this.#r > r ? r : this.#r; if (!this.#t) this.#t = r; this.#t = this.#t < r ? r : this.#t; }); } #e; #i; #r; #t; #s; get statistics() { return { min: this.#r, max: this.#t, avg: parseFloat((this.#s.length ? i.mean(this.#s) : 0).toFixed(this.#e)), stdDev: parseFloat((this.#s.length ? i.standardDeviation(this.#s) : 0).toFixed(this.#e)), p50: parseFloat((this.#s.length ? i.quantile(this.#s, .5) : 0).toFixed(this.#e)), p90: parseFloat((this.#s.length ? i.quantile(this.#s, .9) : 0).toFixed(this.#e)), p95: parseFloat((this.#s.length ? i.quantile(this.#s, .95) : 0).toFixed(this.#e)), p99: parseFloat((this.#s.length ? i.quantile(this.#s, .99) : 0).toFixed(this.#e)) }; } async init() { this.observer.observe({ entryTypes: [ "http" ] }); } async destroy() { this.observer.disconnect(); } reset() { this.#r = 0; this.#t = 0; this.#s = []; } } exports.HttpRequestMonitor = HttpRequestMonitor;