Socket
Socket
Sign inDemoInstall

@smithy/node-http-handler

Package Overview
Dependencies
Maintainers
2
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@smithy/node-http-handler - npm Package Compare versions

Comparing version 2.5.0 to 3.0.0

61

dist-cjs/index.js

@@ -267,5 +267,8 @@ var __create = Object.create;

const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent;
socketCheckTimeoutId = setTimeout(() => {
this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp);
}, this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3));
socketCheckTimeoutId = setTimeout(
() => {
this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp);
},
this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3)
);
const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {});

@@ -667,15 +670,43 @@ let auth = void 0;

// src/stream-collector/index.ts
var streamCollector = /* @__PURE__ */ __name((stream) => new Promise((resolve, reject) => {
const collector = new Collector();
stream.pipe(collector);
stream.on("error", (err) => {
collector.end();
reject(err);
var streamCollector = /* @__PURE__ */ __name((stream) => {
if (isReadableStreamInstance(stream)) {
return collectReadableStream(stream);
}
return new Promise((resolve, reject) => {
const collector = new Collector();
stream.pipe(collector);
stream.on("error", (err) => {
collector.end();
reject(err);
});
collector.on("error", reject);
collector.on("finish", function() {
const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));
resolve(bytes);
});
});
collector.on("error", reject);
collector.on("finish", function() {
const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));
resolve(bytes);
});
}), "streamCollector");
}, "streamCollector");
var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance");
async function collectReadableStream(stream) {
const chunks = [];
const reader = stream.getReader();
let isDone = false;
let length = 0;
while (!isDone) {
const { done, value } = await reader.read();
if (value) {
chunks.push(value);
length += value.length;
}
isDone = done;
}
const collected = new Uint8Array(length);
let offset = 0;
for (const chunk of chunks) {
collected.set(chunk, offset);
offset += chunk.length;
}
return collected;
}
__name(collectReadableStream, "collectReadableStream");
// Annotate the CommonJS export names for ESM import in node:

@@ -682,0 +713,0 @@

@@ -110,3 +110,4 @@ import { HttpResponse } from "@smithy/protocol-http";

this.socketWarningTimestamp = NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp);
}, this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2000) + (this.config.connectionTimeout ?? 1000));
}, this.config.socketAcquisitionWarningTimeout ??
(this.config.requestTimeout ?? 2000) + (this.config.connectionTimeout ?? 1000));
const queryString = buildQueryString(request.query || {});

@@ -113,0 +114,0 @@ let auth = undefined;

import { Collector } from "./collector";
export const streamCollector = (stream) => new Promise((resolve, reject) => {
const collector = new Collector();
stream.pipe(collector);
stream.on("error", (err) => {
collector.end();
reject(err);
export const streamCollector = (stream) => {
if (isReadableStreamInstance(stream)) {
return collectReadableStream(stream);
}
return new Promise((resolve, reject) => {
const collector = new Collector();
stream.pipe(collector);
stream.on("error", (err) => {
collector.end();
reject(err);
});
collector.on("error", reject);
collector.on("finish", function () {
const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));
resolve(bytes);
});
});
collector.on("error", reject);
collector.on("finish", function () {
const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));
resolve(bytes);
});
});
};
const isReadableStreamInstance = (stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream;
async function collectReadableStream(stream) {
const chunks = [];
const reader = stream.getReader();
let isDone = false;
let length = 0;
while (!isDone) {
const { done, value } = await reader.read();
if (value) {
chunks.push(value);
length += value.length;
}
isDone = done;
}
const collected = new Uint8Array(length);
let offset = 0;
for (const chunk of chunks) {
collected.set(chunk, offset);
offset += chunk.length;
}
return collected;
}
{
"name": "@smithy/node-http-handler",
"version": "2.5.0",
"version": "3.0.0",
"description": "Provides a way to make requests",

@@ -28,11 +28,10 @@ "scripts": {

"dependencies": {
"@smithy/abort-controller": "^2.2.0",
"@smithy/protocol-http": "^3.3.0",
"@smithy/querystring-builder": "^2.2.0",
"@smithy/types": "^2.12.0",
"@smithy/abort-controller": "^3.0.0",
"@smithy/protocol-http": "^4.0.0",
"@smithy/querystring-builder": "^3.0.0",
"@smithy/types": "^3.0.0",
"tslib": "^2.6.2"
},
"devDependencies": {
"@tsconfig/recommended": "1.0.1",
"@types/node": "^14.14.31",
"@types/node": "^16.18.96",
"concurrently": "7.0.0",

@@ -44,3 +43,3 @@ "downlevel-dts": "0.10.1",

"engines": {
"node": ">=14.0.0"
"node": ">=16.0.0"
},

@@ -47,0 +46,0 @@ "typesVersions": {

@@ -5,1 +5,6 @@ # @smithy/node-http-handler

[![NPM downloads](https://img.shields.io/npm/dm/@smithy/node-http-handler.svg)](https://www.npmjs.com/package/@smithy/node-http-handler)
This package implements the default `requestHandler` for Node.js using `node:http`, `node:https`, and `node:http2`.
For an example on how `requestHandler`s are used by Smithy generated SDK clients, refer to
the [AWS SDK for JavaScript (v3) supplemental docs](https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md#request-handler-requesthandler).
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc