From e4e640c3b99da3302424f9df20e4c4cb4f2f1256 Mon Sep 17 00:00:00 2001 From: Shawn McKnight Date: Sun, 22 Jan 2023 11:58:13 -0500 Subject: [PATCH 1/3] Improve lifecycle handler types --- index.d.ts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/index.d.ts b/index.d.ts index 1ad8b61e0..88a2bf86b 100644 --- a/index.d.ts +++ b/index.d.ts @@ -334,11 +334,7 @@ declare namespace Moleculer { generateSnapshot(): HistogramMetricSnapshot[]; static generateLinearBuckets(start: number, width: number, count: number): number[]; - static generateExponentialBuckets( - start: number, - factor: number, - count: number - ): number[]; + static generateExponentialBuckets(start: number, factor: number, count: number): number[]; } namespace MetricTypes { @@ -584,7 +580,7 @@ declare namespace Moleculer { call( actionName: string, params: TParams, - opts?: CallingOptions, + opts?: CallingOptions ): Promise; mcall( @@ -721,7 +717,11 @@ declare namespace Moleculer { version?: string | number; } - type StartedStoppedHandler = () => Promise | Promise | void; + type ServiceSyncLifecycleHandler = (this: Service) => void; + type ServiceAsyncLifecycleHandler = ( + this: Service + ) => void | Promise; + interface ServiceSchema { name: string; version?: string | number; @@ -734,9 +734,9 @@ declare namespace Moleculer { hooks?: ServiceHooks; events?: ServiceEvents; - created?: (() => void) | (() => void)[]; - started?: StartedStoppedHandler | StartedStoppedHandler[]; - stopped?: StartedStoppedHandler | StartedStoppedHandler[]; + created?: ServiceSyncLifecycleHandler | ServiceSyncLifecycleHandler[]; + started?: ServiceAsyncLifecycleHandler | ServiceAsyncLifecycleHandler[]; + stopped?: ServiceAsyncLifecycleHandler | ServiceAsyncLifecycleHandler[]; [name: string]: any; } @@ -967,6 +967,9 @@ declare namespace Moleculer { options?: GenericObject; } + type BrokerSyncLifecycleHandler = (broker: ServiceBroker) => void; + type BrokerAsyncLifecycleHandler = (broker: ServiceBroker) => void | Promise; + interface BrokerOptions { namespace?: string | null; nodeID?: string | null; @@ -1030,9 +1033,9 @@ declare namespace Moleculer { ContextFactory?: typeof Context; Promise?: PromiseConstructorLike; - created?: (broker: ServiceBroker) => void; - started?: (broker: ServiceBroker) => void; - stopped?: (broker: ServiceBroker) => void; + created?: BrokerSyncLifecycleHandler; + started?: BrokerAsyncLifecycleHandler; + stopped?: BrokerAsyncLifecycleHandler; /** * If true, process.on("beforeExit/exit/SIGINT/SIGTERM", ...) handler won't be registered! From fecb7e9adc6d0fa344961d19d59cbea7c2d7c5ce Mon Sep 17 00:00:00 2001 From: Shawn McKnight Date: Tue, 24 Jan 2023 12:53:18 -0500 Subject: [PATCH 2/3] Pass through the settings schema type --- index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index 88a2bf86b..0960d1c50 100644 --- a/index.d.ts +++ b/index.d.ts @@ -734,9 +734,9 @@ declare namespace Moleculer { hooks?: ServiceHooks; events?: ServiceEvents; - created?: ServiceSyncLifecycleHandler | ServiceSyncLifecycleHandler[]; - started?: ServiceAsyncLifecycleHandler | ServiceAsyncLifecycleHandler[]; - stopped?: ServiceAsyncLifecycleHandler | ServiceAsyncLifecycleHandler[]; + created?: ServiceSyncLifecycleHandler | ServiceSyncLifecycleHandler[]; + started?: ServiceAsyncLifecycleHandler | ServiceAsyncLifecycleHandler[]; + stopped?: ServiceAsyncLifecycleHandler | ServiceAsyncLifecycleHandler[]; [name: string]: any; } From 040c3d4977d26dfefd06a4dbd1b314c930748e8b Mon Sep 17 00:00:00 2001 From: Shawn McKnight Date: Tue, 24 Jan 2023 13:02:30 -0500 Subject: [PATCH 3/3] Move generic to appropriate location in service lifecycle handlers --- index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.d.ts b/index.d.ts index 0960d1c50..68cbb2887 100644 --- a/index.d.ts +++ b/index.d.ts @@ -717,8 +717,8 @@ declare namespace Moleculer { version?: string | number; } - type ServiceSyncLifecycleHandler = (this: Service) => void; - type ServiceAsyncLifecycleHandler = ( + type ServiceSyncLifecycleHandler = (this: Service) => void; + type ServiceAsyncLifecycleHandler = ( this: Service ) => void | Promise;