From 9370fdfd9c705b85b1b2871ab1fe5a3d33aca84f Mon Sep 17 00:00:00 2001 From: Welkin Wong Date: Tue, 8 Apr 2025 15:32:06 +0800 Subject: [PATCH] DEV: Enhance type definitions for Meteor methods --- packages/meteor/meteor.d.ts | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/meteor/meteor.d.ts b/packages/meteor/meteor.d.ts index 94f4a9753f..d14ec0d1ef 100644 --- a/packages/meteor/meteor.d.ts +++ b/packages/meteor/meteor.d.ts @@ -162,14 +162,26 @@ export namespace Meteor { * @param name Name of method to invoke * @param args Optional method arguments */ - function call(name: string, ...args: any[]): any; + function call< + Result extends + | EJSONable + | EJSONable[] + | EJSONableProperty + | EJSONableProperty[] + >(name: string, ...args: any[]): Result; /** * Invokes a method with an async stub, passing any number of arguments. * @param name Name of method to invoke * @param args Optional method arguments */ - function callAsync(name: string, ...args: any[]): Promise; + function callAsync< + Result extends + | EJSONable + | EJSONable[] + | EJSONableProperty + | EJSONableProperty[] + >(name: string, ...args: any[]): Promise & { stubPromise: Promise, serverPromise: Promise }; interface MethodApplyOptions< Result extends @@ -226,7 +238,7 @@ export namespace Meteor { error: global_Error | Meteor.Error | undefined, result?: Result ) => void - ): any; + ): Result; /** * Invokes a method with an async stub, passing any number of arguments. @@ -249,7 +261,7 @@ export namespace Meteor { error: global_Error | Meteor.Error | undefined, result?: Result ) => void - ): Promise; + ): Promise & { stubPromise: Promise, serverPromise: Promise }; /** Method **/ /** Url **/