Compare commits

...

6 Commits

Author SHA1 Message Date
145505b891 1.1.52 2021-05-16 23:39:26 +00:00
f4f50c6a94 fix(core): update 2021-05-16 23:39:25 +00:00
d204059313 1.1.51 2020-09-29 15:22:25 +00:00
00210566d5 fix(core): update 2020-09-29 15:22:25 +00:00
14245b2521 1.1.50 2020-09-29 15:20:41 +00:00
f0fa91e2db fix(core): update 2020-09-29 15:20:40 +00:00
5 changed files with 2789 additions and 1580 deletions

4323
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartrequest",
"version": "1.1.49",
"version": "1.1.52",
"private": false,
"description": "dropin replacement for request",
"main": "dist_ts/index.js",
@ -23,16 +23,17 @@
},
"homepage": "https://gitlab.com/pushrocks/smartrequest#README",
"dependencies": {
"@pushrocks/smartpromise": "^3.0.6",
"agentkeepalive": "^4.1.3",
"form-data": "^3.0.0"
"@pushrocks/smartpromise": "^3.1.5",
"@pushrocks/smarturl": "^2.0.1",
"agentkeepalive": "^4.1.4",
"form-data": "^4.0.0"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.25",
"@gitzone/tsrun": "^1.2.12",
"@gitzone/tstest": "^1.0.44",
"@pushrocks/tapbundle": "^3.2.9",
"@types/node": "^14.6.0",
"@gitzone/tstest": "^1.0.54",
"@pushrocks/tapbundle": "^3.2.14",
"@types/node": "^15.3.0",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
},

View File

@ -5,4 +5,5 @@ export interface ISmartRequestOptions extends https.RequestOptions {
keepAlive?: boolean;
requestBody?: any;
autoJsonParse?: boolean;
queryParams?: {[key: string]: string}
}

View File

@ -1,15 +1,19 @@
import formData from 'form-data';
// node native scope
import * as fs from 'fs';
import * as http from 'http';
import * as https from 'https';
import * as path from 'path';
import * as url from 'url';
export { http, https, fs, path };
// pushrocks scope
import * as smartpromise from '@pushrocks/smartpromise';
import * as smarturl from '@pushrocks/smarturl';
export { formData, http, https, fs, path, url, smartpromise };
export { smartpromise, smarturl };
// third party scope
import * as agentkeepalive from 'agentkeepalive';
import agentkeepalive from 'agentkeepalive';
import formData from 'form-data';
export { agentkeepalive };
export { agentkeepalive, formData };

View File

@ -57,7 +57,7 @@ const parseSocketPathAndRoute = (stringToParseArg: string) => {
/**
* a custom http agent to make sure we can set custom keepAlive options for speedy subsequent calls
*/
const httpAgent = new plugins.agentkeepalive.default();
const httpAgent = new plugins.agentkeepalive();
/**
* a custom http agent to make sure we can set custom keepAlive options for speedy subsequent calls
@ -83,7 +83,7 @@ const httpsAgentKeepAliveFalse = new plugins.https.Agent({
});
export let request = async (
domainArg: string,
urlArg: string,
optionsArg: interfaces.ISmartRequestOptions = {},
responseStreamArg: boolean = false,
requestDataFunc: (req: plugins.http.ClientRequest) => void = null
@ -103,15 +103,18 @@ export let request = async (
};
// parse url
const parsedUrl = plugins.url.parse(domainArg);
const parsedUrl = plugins.smarturl.Smarturl.createFromUrl(urlArg, {
searchParams: optionsArg.queryParams || {}
});
optionsArg.hostname = parsedUrl.hostname;
if (parsedUrl.port) {
optionsArg.port = parseInt(parsedUrl.port, 10);
}
optionsArg.path = parsedUrl.path;
optionsArg.queryParams = parsedUrl.searchParams;
// determine if unixsock
if (testForUnixSock(domainArg)) {
if (testForUnixSock(urlArg)) {
const detailedUnixPath = parseSocketPathAndRoute(optionsArg.path);
optionsArg.socketPath = detailedUnixPath.socketPath;
optionsArg.path = detailedUnixPath.path;
@ -137,6 +140,11 @@ export let request = async (
}
})() as typeof plugins.https;
if (!requestModule) {
console.error(`The request to ${urlArg} is missing a viable protocol. Must be http or https`);
return;
}
// lets perform the actual request
const requestToFire = requestModule.request(optionsArg, async (response) => {
if (responseStreamArg) {