UNPKG

@middy/ssm

Version:

SSM (EC2 Systems Manager) parameters middleware for the middy framework

54 lines (46 loc) 1.56 kB
// Copyright 2017 - 2026 will Farrell, Luciano Mammino, and Middy contributors. // SPDX-License-Identifier: MIT import type { SSMClient, SSMClientConfig } from "@aws-sdk/client-ssm"; 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> = string & { __returnType?: T }; export declare function ssmParam<T>(path: string): ParamType<T>; export interface SSMOptions<AwsSSMClient = SSMClient> extends Omit<MiddyOptions<AwsSSMClient, SSMClientConfig>, "fetchData"> { fetchData?: { [key: string]: string | ParamType<unknown> }; awsRequestLimit?: number; } export type Context<TOptions extends SSMOptions | 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 SSMOptions | undefined> = TOptions extends SSMOptions ? TOptions extends { fetchData: infer TFetchData } ? { [Key in keyof TFetchData]: TFetchData[Key] extends ParamType<infer T> ? T : unknown; } : {} : {}; declare function ssm<TOptions extends SSMOptions>( options?: TOptions, ): middy.MiddlewareObj< unknown, unknown, Error, Context<TOptions>, Internal<TOptions> >; export declare function ssmValidateOptions( options?: Record<string, unknown>, ): void; export default ssm;