@smithy/node-http-handler
Advanced tools
Comparing version 2.5.0 to 3.0.0
@@ -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). |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
86968
5
1852
10
+ Added@smithy/abort-controller@3.1.4(transitive)
+ Added@smithy/protocol-http@4.1.3(transitive)
+ Added@smithy/querystring-builder@3.0.6(transitive)
+ Added@smithy/types@3.4.2(transitive)
+ Added@smithy/util-uri-escape@3.0.0(transitive)
- Removed@smithy/abort-controller@2.2.0(transitive)
- Removed@smithy/protocol-http@3.3.0(transitive)
- Removed@smithy/querystring-builder@2.2.0(transitive)
- Removed@smithy/types@2.12.0(transitive)
- Removed@smithy/util-uri-escape@2.2.0(transitive)
Updated@smithy/protocol-http@^4.0.0
Updated@smithy/types@^3.0.0