UNPKG

@aimee-blue/ab-service-kit

Version:
28 lines (27 loc) 1.32 kB
import { RequestInit } from 'node-fetch'; import { PromiseType } from 'utility-types'; export declare const CLOUD_FUNCTION_ROOT_ENDPOINT = "CLOUD_FUNCTION_ROOT_ENDPOINT"; export declare const defaultApiParams: () => { rootEndpoint: string; }; export interface IApiParams { rootEndpoint: string; } export declare const fetchFn: (functionName: string, init?: RequestInit | undefined, params?: IApiParams) => Promise<import("node-fetch").Response>; /** * Call function using Firebase HTTP call conventions * @param functionName Name of the function * @param authToken Authentication token * @param rootEndpoint Functions root endpoint */ export declare const callFn: <T, P = unknown>(functionName: string, params?: IApiParams) => (data: P, opts?: ICallOpts) => Promise<T>; interface ICallOpts { authToken?: string; } declare type ParametersIf<T> = T extends (...args: unknown[]) => unknown ? Parameters<T> : [never]; declare type ReturnTypeIf<T> = T extends (...args: unknown[]) => unknown ? ReturnType<T> : never; declare type PromiseTypeIf<T> = T extends Promise<unknown> ? PromiseType<T> : never; export declare function apiOf<T>(params?: IApiParams): { callFn: <K extends keyof T>(name: K, param: ParametersIf<T[K]>[0], opts?: ICallOpts) => Promise<PromiseTypeIf<ReturnTypeIf<T[K]>>>; }; export {};