UNPKG

@middy/service-discovery

Version:

Service Discovery (Cloud Map) instances middleware for the middy framework

57 lines (51 loc) 1.49 kB
import type { DiscoverInstancesCommandInput, HttpInstanceSummary, ServiceDiscoveryClient, ServiceDiscoveryClientConfig, } from "@aws-sdk/client-servicediscovery"; import type middy from "@middy/core"; import type { Options as MiddyOptions } from "@middy/util"; import type { Context as LambdaContext } from "aws-lambda"; interface ServiceDiscoveryOptions< AwsServiceDiscoveryClient = ServiceDiscoveryClient, > extends Pick< MiddyOptions<AwsServiceDiscoveryClient, ServiceDiscoveryClientConfig>, | "AwsClient" | "awsClientOptions" | "awsClientCapture" | "disablePrefetch" | "cacheKey" | "cacheExpiry" | "setToContext" > { fetchData?: { [key: string]: DiscoverInstancesCommandInput }; } export type Context<TOptions extends ServiceDiscoveryOptions | undefined> = TOptions extends { setToContext: true } ? TOptions extends { fetchData: infer TFetchData } ? LambdaContext & { [Key in keyof TFetchData]: HttpInstanceSummary[]; } : never : LambdaContext; export type Internal<TOptions extends ServiceDiscoveryOptions | undefined> = TOptions extends ServiceDiscoveryOptions ? TOptions extends { fetchData: infer TFetchData } ? { [Key in keyof TFetchData]: HttpInstanceSummary[]; } : {} : {}; declare function serviceDiscovery< TOptions extends ServiceDiscoveryOptions | undefined, >( options?: TOptions, ): middy.MiddlewareObj< unknown, any, Error, Context<TOptions>, Internal<TOptions> >; export default serviceDiscovery;