Socket
Socket
Sign inDemoInstall

@aws-sdk/middleware-stack

Package Overview
Dependencies
1
Maintainers
5
Versions
120
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @aws-sdk/middleware-stack

Provides a means for composing multiple middleware functions into a single handler


Version published
Weekly downloads
3.9M
increased by5.81%
Maintainers
5
Install size
111 kB
Created
Weekly downloads
 

Changelog

Source

3.347.0 (2023-06-06)

Features

  • client-emr: This release provides customers the ability to specify an allocation strategies amongst PRICE_CAPACITY_OPTIMIZED, CAPACITY_OPTIMIZED, LOWEST_PRICE, DIVERSIFIED for Spot instances in Instance Feet cluster. This enables customers to choose an allocation strategy best suited for their workload. (ada81f8)
  • client-iam: This release updates the AccountAlias regex pattern with the same length restrictions enforced by the length constraint. (817667a)
  • client-inspector2: Adds new response properties and request parameters for 'last scanned at' on the ListCoverage operation. This feature allows you to search and view the date of which your resources were last scanned by Inspector. (b61d062)
  • client-iot-data-plane: Update thing shadow name regex to allow '$' character (d678417)
  • client-iot: Adding IoT Device Management Software Package Catalog APIs to register, store, and report system software packages, along with their versions and metadata in a centralized location. (7bf4fb1)
  • client-lex-models-v2: This release adds support for Lex Developers to create test sets and to execute those test-sets against their bots. (454008a)
  • client-quicksight: QuickSight support for pivot table field collapse state, radar chart range scale and multiple scope options in conditional formatting. (e89e93c)
  • client-signer: AWS Signer is launching Container Image Signing, a new feature that enables you to sign and verify container images. This feature enables you to validate that only container images you approve are used in your enterprise. (6647d54)
  • client-sqs: Amazon SQS adds three new APIs - StartMessageMoveTask, CancelMessageMoveTask, and ListMessageMoveTasks to automate redriving messages from dead-letter queues to source queues or a custom destination. (00f8d8a)
  • clients: update client endpoints as of 2023-06-06 (eefb716)
  • protocol-http: add reason to HttpResponse (#4772) (d29cb58)
  • protocol-http: add uri type and implementation (#4771) (5c7b40e)

Readme

Source

@aws-sdk/middleware-stack

NPM version NPM downloads

The package contains an implementation of middleware stack interface. Middleware stack is a structure storing middleware in specified order and resolve these middleware into a single handler.

A middleware stack has five Steps, each of them represents a specific request life cycle:

  • initialize: The input is being prepared. Examples of typical initialization tasks include injecting default options computing derived parameters.

  • serialize: The input is complete and ready to be serialized. Examples of typical serialization tasks include input validation and building an HTTP request from user input.

  • build: The input has been serialized into an HTTP request, but that request may require further modification. Any request alterations will be applied to all retries. Examples of typical build tasks include injecting HTTP headers that describe a stable aspect of the request, such as Content-Length or a body checksum.

  • finalizeRequest: The request is being prepared to be sent over the wire. The request in this stage should already be semantically complete and should therefore only be altered to match the recipient's expectations. Examples of typical finalization tasks include request signing and injecting hop-by-hop headers.

  • deserialize: The response has arrived, the middleware here will deserialize the raw response object to structured response

Adding Middleware

There are two ways to add middleware to a middleware stack. They both add middleware to specified Step but they provide fine-grained location control differently.

Absolute Location

You can add middleware to specified step with:

stack.add(middleware, {
  step: "finalizeRequest",
});

This approach works for most cases. Sometimes you want your middleware to be executed in the front of the Step, you can set the Priority to high. Set the Priority to low then this middleware will be executed at the end of Step:

stack.add(middleware, {
  step: "finalizeRequest",
  priority: "high",
});

If multiple middleware is added to same step with same priority, the order of them is determined by the order of adding them.

Relative Location

In some cases, you might want to execute your middleware before some other known middleware, then you can use addRelativeTo():

stack.add(middleware, {
  step: "finalizeRequest",
  name: "myMiddleware",
});
stack.addRelativeTo(anotherMiddleware, {
  relation: "before", //or 'after'
  toMiddleware: "myMiddleware",
});

Removing Middleware

You can remove middleware by name one at a time:

stack.remove("Middleware1");

If you specify tags for middleware, you can remove multiple middleware at a time according to tag:

stack.add(middleware, {
  step: "finalizeRequest",
  tags: ["final"],
});
stack.removeByTag("final");

FAQs

Last updated on 06 Jun 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc