@smithy/node-http-handler
Advanced tools
+2
-2
| { | ||
| "name": "@smithy/node-http-handler", | ||
| "version": "4.7.4", | ||
| "version": "4.7.5", | ||
| "description": "Provides a way to make requests", | ||
@@ -29,3 +29,3 @@ "scripts": { | ||
| "dependencies": { | ||
| "@smithy/core": "^3.24.4", | ||
| "@smithy/core": "^3.24.5", | ||
| "@smithy/types": "^4.14.2", | ||
@@ -32,0 +32,0 @@ "tslib": "^2.6.2" |
| import { Readable } from "node:stream"; | ||
| export class ReadFromBuffers extends Readable { | ||
| buffersToRead; | ||
| numBuffersRead = 0; | ||
| errorAfter; | ||
| constructor(options) { | ||
| super(options); | ||
| this.buffersToRead = options.buffers; | ||
| this.errorAfter = typeof options.errorAfter === "number" ? options.errorAfter : -1; | ||
| } | ||
| _read() { | ||
| if (this.errorAfter !== -1 && this.errorAfter === this.numBuffersRead) { | ||
| this.emit("error", new Error("Mock Error")); | ||
| return; | ||
| } | ||
| if (this.numBuffersRead >= this.buffersToRead.length) { | ||
| return this.push(null); | ||
| } | ||
| return this.push(this.buffersToRead[this.numBuffersRead++]); | ||
| } | ||
| } |
| import { readFileSync } from "node:fs"; | ||
| import { createServer as createHttp2Server } from "node:http2"; | ||
| import { createServer as createHttpServer, } from "node:http"; | ||
| import { createServer as createHttpsServer } from "node:https"; | ||
| import { join } from "node:path"; | ||
| import { Readable } from "node:stream"; | ||
| import { timing } from "./timing"; | ||
| const fixturesDir = join(__dirname, "..", "fixtures"); | ||
| const setResponseHeaders = (response, headers) => { | ||
| for (const [key, value] of Object.entries(headers)) { | ||
| response.setHeader(key, value); | ||
| } | ||
| }; | ||
| const setResponseBody = (response, body) => { | ||
| if (body instanceof Readable) { | ||
| body.pipe(response); | ||
| } | ||
| else { | ||
| response.end(body); | ||
| } | ||
| }; | ||
| export const createResponseFunction = (httpResp) => (request, response) => { | ||
| response.statusCode = httpResp.statusCode; | ||
| if (httpResp.reason) { | ||
| response.statusMessage = httpResp.reason; | ||
| } | ||
| setResponseHeaders(response, httpResp.headers); | ||
| setResponseBody(response, httpResp.body); | ||
| }; | ||
| export const createResponseFunctionWithDelay = (httpResp, delay) => (request, response) => { | ||
| response.statusCode = httpResp.statusCode; | ||
| if (httpResp.reason) { | ||
| response.statusMessage = httpResp.reason; | ||
| } | ||
| setResponseHeaders(response, httpResp.headers); | ||
| timing.setTimeout(() => setResponseBody(response, httpResp.body), delay); | ||
| }; | ||
| export const createContinueResponseFunction = (httpResp) => (request, response) => { | ||
| response.writeContinue(); | ||
| timing.setTimeout(() => { | ||
| createResponseFunction(httpResp)(request, response); | ||
| }, 100); | ||
| }; | ||
| export const createMockHttpsServer = () => { | ||
| const server = createHttpsServer({ | ||
| key: readFileSync(join(fixturesDir, "test-server-key.pem")), | ||
| cert: readFileSync(join(fixturesDir, "test-server-cert.pem")), | ||
| }); | ||
| return server; | ||
| }; | ||
| export const createMockHttpServer = () => { | ||
| const server = createHttpServer(); | ||
| return server; | ||
| }; | ||
| export const createMockHttp2Server = () => { | ||
| const server = createHttp2Server(); | ||
| return server; | ||
| }; | ||
| export const createMirrorResponseFunction = (httpResp) => (request, response) => { | ||
| const bufs = []; | ||
| request.on("data", (chunk) => { | ||
| bufs.push(chunk); | ||
| }); | ||
| request.on("end", () => { | ||
| response.statusCode = httpResp.statusCode; | ||
| setResponseHeaders(response, httpResp.headers); | ||
| setResponseBody(response, Buffer.concat(bufs)); | ||
| }); | ||
| request.on("error", (err) => { | ||
| response.statusCode = 500; | ||
| setResponseHeaders(response, httpResp.headers); | ||
| setResponseBody(response, err.message); | ||
| }); | ||
| }; | ||
| export const getResponseBody = (response) => { | ||
| return new Promise((resolve, reject) => { | ||
| const bufs = []; | ||
| response.body.on("data", function (d) { | ||
| bufs.push(d); | ||
| }); | ||
| response.body.on("end", function () { | ||
| resolve(Buffer.concat(bufs).toString()); | ||
| }); | ||
| response.body.on("error", (err) => { | ||
| reject(err); | ||
| }); | ||
| }); | ||
| }; |
| import { Readable } from "node:stream"; | ||
| export class ReadFromBuffers extends Readable { | ||
| buffersToRead; | ||
| numBuffersRead = 0; | ||
| errorAfter; | ||
| constructor(options) { | ||
| super(options); | ||
| this.buffersToRead = options.buffers; | ||
| this.errorAfter = typeof options.errorAfter === "number" ? options.errorAfter : -1; | ||
| } | ||
| _read(size) { | ||
| if (this.errorAfter !== -1 && this.errorAfter === this.numBuffersRead) { | ||
| this.emit("error", new Error("Mock Error")); | ||
| return; | ||
| } | ||
| if (this.numBuffersRead >= this.buffersToRead.length) { | ||
| return this.push(null); | ||
| } | ||
| return this.push(this.buffersToRead[this.numBuffersRead++]); | ||
| } | ||
| } |
| import { Readable, type ReadableOptions } from "node:stream"; | ||
| export interface ReadFromBuffersOptions extends ReadableOptions { | ||
| buffers: Buffer[]; | ||
| errorAfter?: number; | ||
| } | ||
| export declare class ReadFromBuffers extends Readable { | ||
| private buffersToRead; | ||
| private numBuffersRead; | ||
| private errorAfter; | ||
| constructor(options: ReadFromBuffersOptions); | ||
| _read(): boolean | undefined; | ||
| } |
| import { type Http2Server } from "node:http2"; | ||
| import { type Server as HttpServer, type IncomingMessage, type ServerResponse } from "node:http"; | ||
| import { type Server as HttpsServer } from "node:https"; | ||
| import type { HttpResponse } from "@smithy/types"; | ||
| export declare const createResponseFunction: (httpResp: HttpResponse) => (request: IncomingMessage, response: ServerResponse) => void; | ||
| export declare const createResponseFunctionWithDelay: (httpResp: HttpResponse, delay: number) => (request: IncomingMessage, response: ServerResponse) => void; | ||
| export declare const createContinueResponseFunction: (httpResp: HttpResponse) => (request: IncomingMessage, response: ServerResponse) => void; | ||
| export declare const createMockHttpsServer: () => HttpsServer; | ||
| export declare const createMockHttpServer: () => HttpServer; | ||
| export declare const createMockHttp2Server: () => Http2Server; | ||
| export declare const createMirrorResponseFunction: (httpResp: HttpResponse) => (request: IncomingMessage, response: ServerResponse) => void; | ||
| export declare const getResponseBody: (response: HttpResponse) => Promise<string>; |
| import { Readable, type ReadableOptions } from "node:stream"; | ||
| export interface ReadFromBuffersOptions extends ReadableOptions { | ||
| buffers: Buffer[]; | ||
| errorAfter?: number; | ||
| } | ||
| export declare class ReadFromBuffers extends Readable { | ||
| private buffersToRead; | ||
| private numBuffersRead; | ||
| private errorAfter; | ||
| constructor(options: ReadFromBuffersOptions); | ||
| _read(size: number): boolean | undefined; | ||
| } |
94615
-6.31%38
-13.64%2086
-7.37%Updated