Skip to content

Commit 69351c7

Browse files
committed
Add type inference for Parameters and ReturnType in FirebaseFunction and FirebaseRequest
1 parent 7e73863 commit 69351c7

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/admin/functions/FirebaseFunction.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ export abstract class FirebaseFunction<Parameters, ReturnType> {
2424

2525
export namespace FirebaseFunction {
2626

27+
export type Parameters<Function extends FirebaseFunction<any, any>> = Function extends FirebaseFunction<infer Parameters, any> ? Parameters : never;
28+
29+
export type ReturnType<Function extends FirebaseFunction<any, any>> = Function extends FirebaseFunction<any, infer ReturnType> ? ReturnType : never;
30+
2731
export type Constructor<Parameters, ReturnType> = new () => FirebaseFunction<Parameters, ReturnType>;
2832

2933
export class ConstructorWrapper<Parameters, ReturnType> {

src/admin/functions/FirebaseRequest.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ export abstract class FirebaseRequest<Parameters, ReturnType> {
2121

2222
export namespace FirebaseRequest {
2323

24+
export type Parameters<Function extends FirebaseRequest<any, any>> = Function extends FirebaseRequest<infer Parameters, any> ? Parameters : never;
25+
26+
export type ReturnType<Function extends FirebaseRequest<any, any>> = Function extends FirebaseRequest<any, infer ReturnType> ? ReturnType : never;
27+
2428
export type Constructor<Parameters, ReturnType> = new () => FirebaseRequest<Parameters, ReturnType>;
2529

2630
export class ConstructorWrapper<Parameters, ReturnType> {

0 commit comments

Comments
 (0)