MiddlewareContext
interface MiddlewareContext<API extends ApiMethods = any, CONFIG = any, CLIENT = any> {
customQueries: Record<string, CustomQueryFunction>;
extensions: ApiClientExtension<API>[];
getApiClient: {
<Api = any, Config = any, Client = any>(integrationName: string): Promise<ApiClient<Api, Config, Client>>;
<Api = API, Config = CONFIG, Client = CLIENT>(): Promise<ApiClient<Api, Config, Client>>;
};
integrations: IntegrationsLoaded;
integrationTag: string;
req: AlokaiRequest;
res: AlokaiResponse;
}Properties
| Name | Required | Type | Description |
|---|---|---|---|
customQueries | Required | Record<string, CustomQueryFunction> | |
extensions | Required | ApiClientExtension<API>[] | |
getApiClient | Required | { <Api = any, Config = any, Client = any>(integrationName: string): Promise<ApiClient<Api, Config, Client>>; <Api = API, Config = CONFIG, Client = CLIENT>(): Promise<ApiClient<Api, Config, Client>>; } | Retrieves an API client for a specific integration. This method, in opposite to the context.api property contains all API methods, including the ones from the extensions. The method accepts three generic type parameters: ts getApiClient<Api, Config, Client>(integrationKey: string) Where: - Api - Type for the API methods (usually Endpoints) - Config - Type for the integration configuration (usually MiddlewareConfig) - Client - Type for the HTTP client (usually AxiosInstance) When called without arguments, it returns the current integration with proper type inference. You can also derive these types from the integration's context type: ts import { SapccIntegrationContext } from "@vsf-enterprise/sapcc-api"; type Api = SapccIntegrationContext["api"]; type Config = SapccIntegrationContext["config"]; type Client = SapccIntegrationContext["client"]; const commerce = await context.getApiClient<Api, Config, Client>("commerce"); |
integrations | Required | IntegrationsLoaded | |
integrationTag | Required | string | |
req | Required | AlokaiRequest | |
res | Required | AlokaiResponse |