UNPKG

@middy/appconfig

Version:

AppConfig middleware for the middy framework

60 lines (53 loc) 1.59 kB
import type { AppConfigDataClient, AppConfigDataClientConfig, StartConfigurationSessionRequest, } from "@aws-sdk/client-appconfigdata"; import type middy from "@middy/core"; import type { Options as MiddyOptions } from "@middy/util"; import type { Context as LambdaContext } from "aws-lambda"; export type ParamType<T> = StartConfigurationSessionRequest & { __returnType?: T; }; export declare function appConfigReq<T>( req: StartConfigurationSessionRequest, ): ParamType<T>; export interface AppConfigOptions<AwsAppConfigClient = AppConfigDataClient> extends Omit< MiddyOptions<AwsAppConfigClient, AppConfigDataClientConfig>, "fetchData" > { fetchData?: { [key: string]: StartConfigurationSessionRequest | ParamType<unknown>; }; } export type Context<TOptions extends AppConfigOptions | undefined> = TOptions extends { setToContext: true } ? TOptions extends { fetchData: infer TFetchData } ? LambdaContext & { [Key in keyof TFetchData]: TFetchData[Key] extends ParamType<infer T> ? T : unknown; } : never : LambdaContext; export type Internal<TOptions extends AppConfigOptions | undefined> = TOptions extends AppConfigOptions ? TOptions extends { fetchData: infer TFetchData } ? { [Key in keyof TFetchData]: TFetchData[Key] extends ParamType<infer T> ? T : unknown; } : {} : {}; declare function appConfigMiddleware<TOptions extends AppConfigOptions>( options?: TOptions, ): middy.MiddlewareObj< unknown, any, Error, Context<TOptions>, Internal<TOptions> >; export default appConfigMiddleware;