Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import type { FirebaseFunction, IFirebaseFunction } from './FirebaseFunction'; import type { FirebaseRequest, IFirebaseRequest } from './FirebaseRequest'; export type FirebaseFunctions = | IFirebaseFunction.ConstructorWrapper<unknown, unknown> | IFirebaseRequest.ConstructorWrapper<unknown, unknown> | { [key: string]: FirebaseFunctions }; export type RunnableFirebaseFunctions<Functions extends FirebaseFunctions> = FirebaseFunctions.IsFunction<Functions> extends true ? FirebaseFunction<FirebaseFunctions.FunctionParameters<Functions>, FirebaseFunctions.FunctionReturnType<Functions>> : FirebaseFunctions.IsRequest<Functions> extends true ? FirebaseRequest<FirebaseFunctions.RequestParameters<Functions>, FirebaseFunctions.RequestReturnType<Functions>> : Functions extends { [key: string]: FirebaseFunctions } ? { [Key in keyof Functions]: RunnableFirebaseFunctions<Functions[Key]> } : never; export namespace FirebaseFunctions { export type IsFunction<Functions extends FirebaseFunctions> = Functions extends IFirebaseFunction.ConstructorWrapper<unknown, unknown> ? true : Functions extends IFirebaseRequest.ConstructorWrapper<unknown, unknown> ? false : false; export type IsRequest<Functions extends FirebaseFunctions> = Functions extends IFirebaseFunction.ConstructorWrapper<unknown, unknown> ? false : Functions extends IFirebaseRequest.ConstructorWrapper<unknown, unknown> ? true : false; export type IsRecord<Functions extends FirebaseFunctions> = Functions extends IFirebaseFunction.ConstructorWrapper<unknown, unknown> ? false : Functions extends IFirebaseRequest.ConstructorWrapper<unknown, unknown> ? false : true; export type FunctionParameters<Functions extends FirebaseFunctions> = Functions extends IFirebaseFunction.ConstructorWrapper<infer Parameters, unknown> ? Parameters : Functions extends IFirebaseRequest.ConstructorWrapper<unknown, unknown> ? never : never; export type FunctionReturnType<Functions extends FirebaseFunctions> = Functions extends IFirebaseFunction.ConstructorWrapper<unknown, infer ReturnType> ? ReturnType : Functions extends IFirebaseRequest.ConstructorWrapper<unknown, unknown> ? never : never; export type RequestParameters<Functions extends FirebaseFunctions> = Functions extends IFirebaseFunction.ConstructorWrapper<unknown, unknown> ? never : Functions extends IFirebaseRequest.ConstructorWrapper<infer Parameters, unknown> ? Parameters : never; export type RequestReturnType<Functions extends FirebaseFunctions> = Functions extends IFirebaseFunction.ConstructorWrapper<unknown, unknown> ? never : Functions extends IFirebaseRequest.ConstructorWrapper<unknown, infer ReturnType> ? ReturnType : never; } |