import {
DeserializeHandler,
DeserializeHandlerArguments,
DeserializeHandlerOutput,
DeserializeMiddleware,
HandlerExecutionContext,
ResponseDeserializer,
} from "@aws-sdk/types";
export const deserializerMiddleware =
(
options: RuntimeUtils,
deserializer: ResponseDeserializer
): DeserializeMiddleware =>
(next: DeserializeHandler, context: HandlerExecutionContext): DeserializeHandler =>
async (args: DeserializeHandlerArguments): Promise> => {
const { response } = await next(args);
const parsed = await deserializer(response, options);
return {
response,
output: parsed as Output,
};
};