UNPKG

lakutata

Version:

An IoC-based universal application framework.

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