UNPKG

@middy/secrets-manager

Version:

Secrets Manager middleware for the middy framework

59 lines (52 loc) 1.7 kB
// Copyright 2017 - 2026 will Farrell, Luciano Mammino, and Middy contributors. // SPDX-License-Identifier: MIT import type { SecretsManagerClient, SecretsManagerClientConfig, } from "@aws-sdk/client-secrets-manager"; import type middy from "@middy/core"; import type { Options as MiddyOptions } from "@middy/util"; import type { Context as LambdaContext } from "aws-lambda"; export type SecretType<T> = string & { __returnType?: T }; export declare function secretsManagerParam<T>(path: string): SecretType<T>; export interface SecretsManagerOptions< AwsSecretsManagerClient = SecretsManagerClient, > extends Omit< MiddyOptions<AwsSecretsManagerClient, SecretsManagerClientConfig>, "fetchData" > { fetchData?: { [key: string]: string | SecretType<unknown> }; fetchRotationDate?: boolean | Record<string, boolean>; } export type Context<TOptions extends SecretsManagerOptions | undefined> = TOptions extends { setToContext: true } ? TOptions extends { fetchData: infer TFetchData } ? LambdaContext & { [Key in keyof TFetchData]: TFetchData[Key] extends SecretType<infer T> ? T : unknown; } : never : LambdaContext; export type Internal<TOptions extends SecretsManagerOptions | undefined> = TOptions extends SecretsManagerOptions ? TOptions extends { fetchData: infer TFetchData } ? { [Key in keyof TFetchData]: TFetchData[Key] extends SecretType<infer T> ? T : unknown; } : {} : {}; declare function secretsManager< TOptions extends SecretsManagerOptions | undefined, >( options?: TOptions, ): middy.MiddlewareObj< unknown, unknown, Error, Context<TOptions>, Internal<TOptions> >; export default secretsManager;