teeny-request
Advanced tools
Comparing version 4.0.0 to 5.1.1
@@ -1,13 +0,56 @@ | ||
import * as r from 'request'; | ||
/// <reference types="node" /> | ||
import { Agent } from 'https'; | ||
import { Readable, Duplex } from 'stream'; | ||
export interface CoreOptions { | ||
method?: 'GET' | 'POST' | 'PUT' | 'HEAD' | 'OPTIONS'; | ||
timeout?: number; | ||
gzip?: boolean; | ||
json?: any; | ||
headers?: Headers; | ||
body?: string | {}; | ||
useQuerystring?: boolean; | ||
qs?: any; | ||
proxy?: string; | ||
multipart?: RequestPart[]; | ||
forever?: boolean; | ||
} | ||
export interface OptionsWithUri extends CoreOptions { | ||
uri: string; | ||
} | ||
export interface OptionsWithUrl extends CoreOptions { | ||
url: string; | ||
} | ||
export declare type Options = OptionsWithUri | OptionsWithUrl; | ||
export interface Request extends Duplex { | ||
agent: Agent | false; | ||
headers: Headers; | ||
href?: string; | ||
} | ||
export interface Response<T = any> { | ||
statusCode: number; | ||
headers: Headers; | ||
body: T; | ||
request: Request; | ||
statusMessage?: string; | ||
} | ||
export interface RequestPart { | ||
body: string | Readable; | ||
} | ||
export interface RequestCallback<T = any> { | ||
(err: Error | null, response: Response, body?: T): void; | ||
} | ||
export declare class RequestError extends Error { | ||
code?: number; | ||
} | ||
declare function teenyRequest(reqOpts: r.Options): r.Request; | ||
interface Headers { | ||
[index: string]: string; | ||
} | ||
declare function teenyRequest(reqOpts: Options): Request; | ||
declare namespace teenyRequest { | ||
var defaults: (defaults: r.OptionalUriUrl) => (reqOpts: r.Options, callback?: r.RequestCallback | undefined) => void | r.Request; | ||
var defaults: (defaults: CoreOptions) => (reqOpts: Options, callback?: RequestCallback<any> | undefined) => void | Request; | ||
} | ||
declare function teenyRequest(reqOpts: r.Options, callback: r.RequestCallback): void; | ||
declare function teenyRequest(reqOpts: Options, callback: RequestCallback): void; | ||
declare namespace teenyRequest { | ||
var defaults: (defaults: r.OptionalUriUrl) => (reqOpts: r.Options, callback?: r.RequestCallback | undefined) => void | r.Request; | ||
var defaults: (defaults: CoreOptions) => (reqOpts: Options, callback?: RequestCallback<any> | undefined) => void | Request; | ||
} | ||
export { teenyRequest }; |
@@ -27,2 +27,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var https_1 = require("https"); | ||
var node_fetch_1 = require("node-fetch"); | ||
@@ -71,6 +72,12 @@ var stream_1 = require("stream"); | ||
} | ||
if (reqOpts.proxy || process.env.HTTP_PROXY || process.env.HTTPS_PROXY) { | ||
var proxy = (process.env.HTTP_PROXY || process.env.HTTPS_PROXY); | ||
var proxy = process.env.HTTP_PROXY || | ||
process.env.http_proxy || | ||
process.env.HTTPS_PROXY || | ||
process.env.https_proxy; | ||
if (reqOpts.proxy || proxy) { | ||
options.agent = new HttpsProxyAgent(proxy); | ||
} | ||
else if (reqOpts.forever) { | ||
options.agent = new https_1.Agent({ keepAlive: true }); | ||
} | ||
return { uri: uri, options: options }; | ||
@@ -87,3 +94,4 @@ } | ||
var request = {}; | ||
request.headers = opts.headers || {}; | ||
request.agent = opts.agent || false; | ||
request.headers = (opts.headers || {}); | ||
request.href = res.url; | ||
@@ -145,3 +153,3 @@ // headers need to be converted from a map to an obj | ||
var header = res.headers.get('content-type'); | ||
var response = fetchToRequestResponse(reqOpts, res); | ||
var response = fetchToRequestResponse(options, res); | ||
var body = response.body; | ||
@@ -171,3 +179,3 @@ if (header === 'application/json' || | ||
// Stream mode | ||
var requestStream_1 = new stream_1.PassThrough(); | ||
var requestStream_1 = new stream_1.Duplex(); | ||
options.compress = false; | ||
@@ -179,3 +187,3 @@ node_fetch_1.default(uri, options).then(function (res) { | ||
}); | ||
var response = fetchToRequestResponse(reqOpts, res); | ||
var response = fetchToRequestResponse(options, res); | ||
requestStream_1.emit('response', response); | ||
@@ -194,3 +202,3 @@ }, function (err) { | ||
var header = res.headers.get('content-type'); | ||
var response = fetchToRequestResponse(reqOpts, res); | ||
var response = fetchToRequestResponse(options, res); | ||
var body = response.body; | ||
@@ -213,3 +221,3 @@ if (header === 'application/json' || | ||
res.text().then(function (text) { | ||
var response = fetchToRequestResponse(reqOpts, res); | ||
var response = fetchToRequestResponse(options, res); | ||
response.body = text; | ||
@@ -216,0 +224,0 @@ callback(null, response, text); |
{ | ||
"name": "teeny-request", | ||
"version": "4.0.0", | ||
"version": "5.1.1", | ||
"description": "Like request, but smaller.", | ||
@@ -8,20 +8,20 @@ "main": "./build/src/index.js", | ||
"scripts": { | ||
"test": "nyc mocha build/test", | ||
"test": "c8 mocha build/test", | ||
"compile": "tsc -p .", | ||
"pretest": "npm run compile", | ||
"check": "gts check", | ||
"lint": "gts check", | ||
"clean": "gts clean", | ||
"fix": "gts fix", | ||
"prepare": "npm run compile", | ||
"posttest": "npm run check", | ||
"coverage": "nyc report --reporter=json && codecov -f coverage/*.json" | ||
"posttest": "npm run lint", | ||
"docs": "compodoc src/", | ||
"predocs-test": "npm run docs", | ||
"docs-test": "linkinator docs", | ||
"samples-test": "echo no sample tests!", | ||
"system-test": "echo no system tests!" | ||
}, | ||
"files": [ | ||
"build/src", | ||
"LICENSE" | ||
"build/src" | ||
], | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/fhinkel/teeny-request.git" | ||
}, | ||
"repository": "googleapis/teeny-request", | ||
"keywords": [ | ||
@@ -35,5 +35,5 @@ "request", | ||
"bugs": { | ||
"url": "https://github.com/fhinkel/teeny-request/issues" | ||
"url": "https://github.com/googleapis/teeny-request/issues" | ||
}, | ||
"homepage": "https://github.com/fhinkel/teeny-request#readme", | ||
"homepage": "https://github.com/googleapis/teeny-request#readme", | ||
"dependencies": { | ||
@@ -45,12 +45,15 @@ "https-proxy-agent": "^2.2.1", | ||
"devDependencies": { | ||
"@compodoc/compodoc": "^1.1.9", | ||
"@types/mocha": "^5.2.5", | ||
"@types/nock": "^10.0.0", | ||
"@types/node-fetch": "^2.1.2", | ||
"@types/request": "^2.47.1", | ||
"@types/sinon": "^7.0.13", | ||
"@types/uuid": "^3.4.4", | ||
"c8": "^5.0.1", | ||
"codecov": "^3.1.0", | ||
"gts": "^1.0.0", | ||
"mocha": "^6.0.0", | ||
"linkinator": "^1.5.0", | ||
"mocha": "^6.1.4", | ||
"nock": "^10.0.2", | ||
"nyc": "^14.0.0", | ||
"sinon": "^7.3.2", | ||
"typescript": "^3.0.1" | ||
@@ -57,0 +60,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
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
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
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
34614
7
290
14
5
3