From 72d5202f973354caace0907c52b2eb2ffdbd1588 Mon Sep 17 00:00:00 2001 From: Icebob Date: Sun, 10 Dec 2023 15:29:21 +0100 Subject: [PATCH] fix typings --- src/cpu-usage.d.ts | 7 +++++++ src/health.d.ts | 12 ++++++++++++ src/health.js | 2 +- src/internals.d.ts | 4 ++++ src/lock.d.ts | 9 +++++++++ src/lock.js | 9 ++++++++- src/metrics/common.d.ts | 11 +++++++++++ src/metrics/rates.d.ts | 21 +++++++++++++++++++++ src/metrics/rates.js | 7 +++++++ tsconfig.json | 2 +- 10 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 src/cpu-usage.d.ts create mode 100644 src/health.d.ts create mode 100644 src/internals.d.ts create mode 100644 src/lock.d.ts create mode 100644 src/metrics/common.d.ts create mode 100644 src/metrics/rates.d.ts diff --git a/src/cpu-usage.d.ts b/src/cpu-usage.d.ts new file mode 100644 index 000000000..53e80d52c --- /dev/null +++ b/src/cpu-usage.d.ts @@ -0,0 +1,7 @@ +declare type CpuUsageResponse = { + avg: number; + usages: number[]; +}; + +declare function _exports(sampleTime?: number): Promise; +export = _exports; diff --git a/src/health.d.ts b/src/health.d.ts new file mode 100644 index 000000000..f90795515 --- /dev/null +++ b/src/health.d.ts @@ -0,0 +1,12 @@ +import os = require("os"); +import type { NodeHealthStatus } from "./service-broker"; + +export function getHealthStatus(): NodeHealthStatus; + +export function getCpuInfo(): NodeHealthStatus["cpu"]; +export function getMemoryInfo(): NodeHealthStatus["mem"]; +export function getOsInfo(): NodeHealthStatus["os"]; +export function getProcessInfo(): NodeHealthStatus["process"]; +export function getClientInfo(): NodeHealthStatus["client"]; +export function getNetworkInterfacesInfo(): NodeHealthStatus["net"]; +export function getDateTimeInfo(): NodeHealthStatus["time"]; diff --git a/src/health.js b/src/health.js index 18eb9f33e..d73fd259a 100644 --- a/src/health.js +++ b/src/health.js @@ -1,6 +1,6 @@ /* * moleculer - * Copyright (c) 2019 MoleculerJS (https://github.com/moleculerjs/moleculer) + * Copyright (c) 2023 MoleculerJS (https://github.com/moleculerjs/moleculer) * MIT Licensed */ diff --git a/src/internals.d.ts b/src/internals.d.ts new file mode 100644 index 000000000..79edfeea1 --- /dev/null +++ b/src/internals.d.ts @@ -0,0 +1,4 @@ +import type { ServiceSchema, ServiceSettingSchema } from "./service"; + +declare function _exports(): ServiceSchema; +export = _exports; diff --git a/src/lock.d.ts b/src/lock.d.ts new file mode 100644 index 000000000..e6e9e45f7 --- /dev/null +++ b/src/lock.d.ts @@ -0,0 +1,9 @@ +declare class Lock { + locked: Map; + + acquire(key: string, ttl: number): Promise; + isLocked(key: string): boolean; + release(key: string): Promise; +} + +export = Lock; diff --git a/src/lock.js b/src/lock.js index 45e19c76c..1e746be68 100644 --- a/src/lock.js +++ b/src/lock.js @@ -1,11 +1,18 @@ /* * moleculer - * Copyright (c) 2019 MoleculerJS (https://github.com/moleculerjs/moleculer) + * Copyright (c) 2023 MoleculerJS (https://github.com/moleculerjs/moleculer) * MIT Licensed */ "use strict"; +/** + * @typedef {import("./lock")} LockClass + */ + +/** + * @implements {LockClass} + */ class Lock { constructor() { this.locked = new Map(); diff --git a/src/metrics/common.d.ts b/src/metrics/common.d.ts new file mode 100644 index 000000000..0b81293a1 --- /dev/null +++ b/src/metrics/common.d.ts @@ -0,0 +1,11 @@ +/** + * Register common OS, process & Moleculer metrics. + */ +export function registerCommonMetrics(): void; + +/** + * Update common metric values. + * + * @returns {Promise} + */ +export function updateCommonMetrics(): Promise; diff --git a/src/metrics/rates.d.ts b/src/metrics/rates.d.ts new file mode 100644 index 000000000..69ea63ff7 --- /dev/null +++ b/src/metrics/rates.d.ts @@ -0,0 +1,21 @@ +import type BaseMetric = require("./types/base"); + +declare class MetricRate { + metric: BaseMetric; + item: Record; + min: number; + + constructor(metric: BaseMetric, item: Record, min: number); + + rate: number; + lastValue: number; + lastTickTime: number; + value: number; + timer: NodeJS.Timeout; + + update(value: number): void; + tick(): void; + reset(): void; +} + +export = MetricRate; diff --git a/src/metrics/rates.js b/src/metrics/rates.js index 509e9544e..e92a27c49 100644 --- a/src/metrics/rates.js +++ b/src/metrics/rates.js @@ -16,6 +16,13 @@ function getAlpha(min) { } */ +/** + * @typedef {import("./rates")} MetricRateClass + */ + +/** + * @implements {MetricRateClass} + */ class MetricRate { constructor(metric, item, min) { this.metric = metric; diff --git a/tsconfig.json b/tsconfig.json index 832fbdb79..718f8a546 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,7 @@ "strict": false, "checkJs": true, "declaration": true, - "skipLibCheck": false, + "skipLibCheck": true, "declarationDir": "generated-types", "outDir": "dist", "noEmit": true,