Merge pull request #12519 from borekb/request-url-type-fix

Enhanced type of `url` and `uri` properties on the options object
This commit is contained in:
Yui
2016-11-07 15:52:45 -08:00
committed by GitHub
2 changed files with 22 additions and 11 deletions
+3 -2
View File
@@ -13,6 +13,7 @@ import https = require('https');
import url = require('url');
import fs = require('fs');
import FormData = require('form-data');
import { Url } from 'url';
declare namespace request {
export interface RequestAPI<TRequest extends Request,
@@ -114,10 +115,10 @@ declare namespace request {
}
interface UriOptions {
uri: string;
uri: string | Url;
}
interface UrlOptions {
url: string;
url: string | Url;
}
export type RequiredUriUrl = UriOptions | UrlOptions;
+19 -9
View File
@@ -2,6 +2,7 @@
import request = require('request');
import http = require('http');
import stream = require('stream');
import urlModule = require('url');
import fs = require('fs');
import FormData = require('form-data');
@@ -91,7 +92,7 @@ var options: request.Options = {
qs: obj,
json: value,
multipart: value,
agent: new http.Agent(),
agent: new http.Agent(),
agentOptions: value,
agentClass: value,
forever: value,
@@ -242,14 +243,14 @@ request
console.log(response.headers['content-type']); // 'image/png'
})
.pipe(request.put('http://mysite.com/img.png'));
request
.get('http://mysite.com/doodle.png')
.on('error', function(err: any) {
console.log(err);
})
.pipe(fs.createWriteStream('doodle.png'));
http.createServer(function (req, resp) {
if (req.url === '/doodle.png') {
if (req.method === 'PUT') {
@@ -361,7 +362,7 @@ request({
}
console.log('Upload successful! Server responded with:', body);
});
request.get('http://some.server.com/').auth('username', 'password', false);
// or
request.get('http://some.server.com/', {
@@ -451,8 +452,8 @@ request.post({url:url, oauth:oauth}, function (e, r, body) {
, token_secret: perm_data.oauth_token_secret
};
var url = 'https://api.twitter.com/1.1/users/show.json';
var query = {
screen_name: perm_data.screen_name,
var query = {
screen_name: perm_data.screen_name,
user_id: perm_data.user_id
};
request.get({url:url, oauth:oauth, qs:query, json:true}, function (e, r, user) {
@@ -539,7 +540,7 @@ request({
}
}
});
//requests using baseRequest() will set the 'x-token' header
var baseRequest = request.defaults({
headers: {'x-token': 'my-token'}
@@ -592,7 +593,7 @@ var rand = Math.floor(Math.random()*100000000).toString();
}
}
);
request(
{ method: 'GET'
, uri: 'http://www.google.com'
@@ -614,7 +615,7 @@ request(
console.log('received ' + data.length + ' bytes of compressed data')
})
});
var requestWithJar = request.defaults({jar: true})
requestWithJar('http://www.google.com', function () {
requestWithJar('http://images.google.com');
@@ -661,3 +662,12 @@ request(
.on('data', function(data: Buffer | string) { })
.on('error', function(e: Error) { })
.on('complete', function(resp: http.IncomingMessage, body?: string | Buffer) { });
// options.url / options.uri can be the Url object
request.get({
url: urlModule.parse('http://example.com')
});
request.get({
uri: urlModule.parse('http://example.com')
});