import { AxiosInstance } from 'axios'; import { TenantUserInfo } from '../utilities/authUtils'; import { CustomFunctionInput, CustomFunctionRequestBase, CustomFunctionRequestHeaders } from './customFunction'; import { FnDataServices } from './innerServices'; import { CustomFunctionLogger } from '../services'; import { Protector } from '../middlewares'; export interface FunctionParamsWithRoutes extends FunctionParameters { useRoutes: true; routes: FunctionRoute[]; } export interface FunctionParamsWithHandler extends FunctionParameters { useRoutes?: false; handler: FunctionHandler; } export interface FunctionResponse { status: 200 | 201 | 202 | 400 | 401 | 402 | 404 | 500 | 501 | 502 | number; body: T; } export type RestMethod = 'post' | 'get' | 'put' | 'delete'; export type Utilities = { userInfo: TenantUserInfo; /** @deprecated Construct services via `new MexClient(context)` instead of reading `services` off the bag. */ services: FnDataServices; /** @deprecated Construct the logger via `new MexLogger(context)` instead of reading `logger` off the bag. */ logger: CustomFunctionLogger; protector: Protector; /** Static-token axios instance. Populated by `ServiceController.getUtilities()`; consumed by `MexClient`. */ staticApiService?: AxiosInstance; }; export interface FunctionRoute { method: RestMethod; path: string; handler: (utilities: Utilities, body: CustomFunctionInput, headers: CustomFunctionRequestHeaders, method: string, path: string, querystring?: string | null) => Promise>; } export type FunctionHandler = (payload: CustomFunctionRequestBase) => Promise>; export interface FunctionParameters { useRoutes?: boolean; handler?: FunctionHandler; routes?: FunctionRoute[]; } //# sourceMappingURL=function.d.ts.map