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
JavaScript
;
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;