diff --git a/packages/util-create-request/package.json b/packages/util-create-request/package.json index 81a250249e13..6bf3c16ba193 100644 --- a/packages/util-create-request/package.json +++ b/packages/util-create-request/package.json @@ -20,7 +20,6 @@ "tslib": "^1.8.0" }, "devDependencies": { - "@aws-sdk/middleware-stack": "^1.0.0-alpha.1", "@aws-sdk/protocol-http": "^1.0.0-alpha.6", "@types/jest": "^24.0.12", "@types/node": "^10.0.3", diff --git a/packages/util-create-request/src/foo.fixture.ts b/packages/util-create-request/src/foo.fixture.ts index 37449373c738..03f792eb2532 100644 --- a/packages/util-create-request/src/foo.fixture.ts +++ b/packages/util-create-request/src/foo.fixture.ts @@ -53,7 +53,11 @@ export const operationCommand: Command< config: any, options: any ) => { - return () => Promise.resolve({ output, response: {} }); + const concatStack = stack.concat(operationCommand.middlewareStack); + return concatStack.resolve( + () => Promise.resolve({ output, response: {} }), + {} as any + ); } }; diff --git a/packages/util-create-request/src/index.spec.ts b/packages/util-create-request/src/index.spec.ts index 87fb50b7af98..c7a8190db21d 100644 --- a/packages/util-create-request/src/index.spec.ts +++ b/packages/util-create-request/src/index.spec.ts @@ -116,7 +116,7 @@ describe("create-request", () => { ); expect(request).toEqual({ ...httpRequest, - body: "A1B2" + body: "A1B2C3" }); }); }); diff --git a/packages/util-create-request/src/index.ts b/packages/util-create-request/src/index.ts index 25aca0378b19..d050e4564322 100644 --- a/packages/util-create-request/src/index.ts +++ b/packages/util-create-request/src/index.ts @@ -1,8 +1,4 @@ -import { - HttpRequest, - MetadataBearer, - SerializeMiddleware -} from "@aws-sdk/types"; +import { HttpRequest, MetadataBearer, BuildMiddleware } from "@aws-sdk/types"; import { MiddlewareStack } from "@aws-sdk/middleware-stack"; import { Client, Command } from "@aws-sdk/smithy-client"; @@ -14,27 +10,26 @@ export async function createRequest< client: Client, command: Command ): Promise { - const presignMiddleware: SerializeMiddleware< + const interceptMiddleware: BuildMiddleware< InputType, OutputType > = next => async args => { return { output: { request: args.request } as any, response: undefined }; }; const clientStack = client.middlewareStack.clone(); - const commandStack = command.middlewareStack.clone(); - const concatenatedStack = clientStack.concat(commandStack) as MiddlewareStack< - InputType, - OutputType - >; + //add middleware to the last of 'build' step - concatenatedStack.add(presignMiddleware, { - step: "serialize", + clientStack.add(interceptMiddleware, { + step: "build", priority: "low" }); - const handler = concatenatedStack.resolve((() => {}) as any, { - logger: {} as any - }); + const handler = command.resolveMiddleware( + clientStack as MiddlewareStack, + client.config, + undefined + ); + //@ts-ignore return await handler(command).then(output => output.output.request); }