Alokai

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

NameRequiredTypeDescription
customQueriesRequiredRecord<string, CustomQueryFunction>
extensionsRequiredApiClientExtension<API>[]
getApiClientRequired{ <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");
integrationsRequiredIntegrationsLoaded
integrationTagRequiredstring
reqRequiredAlokaiRequest
resRequiredAlokaiResponse

Referenced Types

On this page