UNPKG

pluto-http-client

Version:

HTTP client for NodeJS. Inspired in the Java JAX-RS spec so you can expect excellence, versatility and extensibility.

72 lines (71 loc) 2.56 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Http2WebTarget = exports.WebTarget = void 0; const url_1 = require("url"); const node_request_1 = require("./impl/node-request"); const http2 = __importStar(require("http2")); class WebTarget { constructor(client, url) { this._client = client; this._url = url; } path(path) { this._url.pathname = path; return this; } addQueryParam(key, value) { this._url.searchParams.append(key, value); return this; } request(abortSignal) { return new node_request_1.HttpNodeRequest(this._client.snapshot(), new url_1.URL(this._url.toString()), abortSignal); } close() { } } exports.WebTarget = WebTarget; class Http2WebTarget extends WebTarget { constructor(client, url) { super(client, url); this._http2Client = http2.connect(url, { timeout: client.timeout, rejectUnauthorized: !client.allowInsecure, }); this._http2Client.on("timeout", () => { this._error = new Error("Socket timeout"); }); this._http2Client.on("error", (error) => { this._error = error; }); } request(abortSignal) { return new node_request_1.Http2NodeRequest(this._client.snapshot(), new url_1.URL(this._url.toString()), this._http2Client, abortSignal, this._error); } close() { this._http2Client.close(); } } exports.Http2WebTarget = Http2WebTarget;