@aws-amplify/core
Version:
Core category of aws-amplify
27 lines (25 loc) • 1.13 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.composeTransferHandler = void 0;
/**
* Compose a transfer handler with a core transfer handler and a list of middleware.
* @param coreHandler Core transfer handler
* @param middleware List of middleware
* @returns A transfer handler whose option type is the union of the core
* transfer handler's option type and the middleware's option type.
* @internal
*/
const composeTransferHandler = (coreHandler, middleware) => (request, options) => {
const context = {};
let composedHandler = (composeHandlerRequest) => coreHandler(composeHandlerRequest, options);
for (let i = middleware.length - 1; i >= 0; i--) {
const m = middleware[i];
const resolvedMiddleware = m(options);
composedHandler = resolvedMiddleware(composedHandler, context);
}
return composedHandler(request);
};
exports.composeTransferHandler = composeTransferHandler;
//# sourceMappingURL=composeTransferHandler.js.map
;