mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-16 19:09:18 +08:00
feat: update request-promise type definition to v3 (#9855)
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
/// <reference path="request-promise.d.ts" />
|
||||
|
||||
import rp = require('request-promise');
|
||||
import nodeRequest = require('request');
|
||||
import errors = require('request-promise/errors');
|
||||
|
||||
rp('http://www.google.com')
|
||||
.then(console.dir)
|
||||
.catch(console.error);
|
||||
|
||||
var options: nodeRequest.Options = {
|
||||
var options: rp.Options = {
|
||||
uri : 'http://posttestserver.com/post.php',
|
||||
method : 'POST',
|
||||
json: true,
|
||||
@@ -18,7 +18,39 @@ rp(options)
|
||||
.then(console.dir)
|
||||
.catch(console.error);
|
||||
|
||||
// --> Displays length of response from server after post
|
||||
rp('http://google.com').finally(() => {});
|
||||
|
||||
// This works:
|
||||
rp('http://google.com').then(console.dir);
|
||||
rp('http://google.com').catch(console.error);
|
||||
rp('http://google.com').then(console.dir, console.error);
|
||||
|
||||
// This works as well since additional methods are only used AFTER the FIRST call in the chain:
|
||||
rp('http://google.com').then(console.dir).spread(console.dir);
|
||||
rp('http://google.com').catch(console.error).error(console.error);
|
||||
|
||||
// Use .promise() in these cases:
|
||||
rp('http://google.com').promise().bind(this).then(console.dir);
|
||||
|
||||
rp({ uri: 'http://google.com', resolveWithFullResponse: true }).then((response) => {});
|
||||
rp({ uri: 'http://google.com', simple: false }).catch((reason) => {});
|
||||
|
||||
rp({
|
||||
uri: 'http://google.com',
|
||||
transform: (body: any, response: http.IncomingMessage, resolveWithFullResponse: boolean): any => {
|
||||
throw new Error('Transform failed!');
|
||||
}
|
||||
}).catch(errors.StatusCodeError, (reason: errors.StatusCodeError) => {
|
||||
// The server responded with a status codes other than 2xx.
|
||||
// Check reason.statusCode
|
||||
}).catch(errors.RequestError, (reason: errors.RequestError) => {
|
||||
// The request failed due to technical reasons.
|
||||
// reason.cause is the Error object Request would pass into a callback.
|
||||
}).catch(errors.TransformError, (reason: errors.TransformError) => {
|
||||
console.log(reason.cause.message); // => Transform failed!
|
||||
// reason.response is the original response for which the transform operation failed
|
||||
});
|
||||
|
||||
|
||||
//Defaults tests
|
||||
(() => {
|
||||
@@ -46,7 +78,7 @@ rp(options)
|
||||
console.log("DELETE succeeded with status %d", response.statusCode);
|
||||
})
|
||||
.catch(console.error);
|
||||
|
||||
|
||||
//The following examples from https://github.com/request/request
|
||||
import fs = require('fs');
|
||||
import http = require('http');
|
||||
@@ -71,14 +103,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') {
|
||||
@@ -98,7 +130,7 @@ http.createServer(function (req, resp) {
|
||||
});
|
||||
|
||||
var resp: http.ServerResponse;
|
||||
var req: nodeRequest.Request;
|
||||
var req: rp.RequestPromise;
|
||||
req.pipe(request('http://mysite.com/doodle.png')).pipe(resp);
|
||||
|
||||
var r = request;
|
||||
@@ -192,7 +224,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/', {
|
||||
@@ -282,8 +314,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) {
|
||||
@@ -370,7 +402,7 @@ request({
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//requests using baseRequest() will set the 'x-token' header
|
||||
var baseRequest = request.defaults({
|
||||
headers: {'x-token': 'my-token'}
|
||||
@@ -420,7 +452,7 @@ var rand = Math.floor(Math.random()*100000000).toString();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
request(
|
||||
{ method: 'GET'
|
||||
, uri: 'http://www.google.com'
|
||||
@@ -442,7 +474,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');
|
||||
|
||||
95
request-promise/request-promise.d.ts
vendored
95
request-promise/request-promise.d.ts
vendored
@@ -1,33 +1,84 @@
|
||||
// Type definitions for request-promise v0.4.2
|
||||
// Project: https://www.npmjs.com/package/request-promise
|
||||
// Definitions by: Christopher Glantschnig <https://github.com/cglantschnig/>, Joe Skeen <http://github.com/joeskeen>
|
||||
// Type definitions for request-promise v3.0.0
|
||||
// Project: https://github.com/request/request-promise
|
||||
// Definitions by: Christopher Glantschnig <https://github.com/cglantschnig/>, Joe Skeen <http://github.com/joeskeen>, Aya Morisawa <https://github.com/AyaMorisawa>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
// Change [0]: 2015/08/20 - Aya Morisawa <https://github.com/AyaMorisawa>
|
||||
|
||||
/// <reference path="../request/request.d.ts" />
|
||||
/// <reference path="../bluebird/bluebird.d.ts" />
|
||||
|
||||
declare module 'request-promise' {
|
||||
import request = require('request');
|
||||
import http = require('http');
|
||||
|
||||
interface RequestPromise extends request.Request {
|
||||
then<TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): Promise<TResult>;
|
||||
catch(onrejected?: (reason: any) => any | PromiseLike<any>): Promise<any>;
|
||||
catch(onrejected?: (reason: any) => void): Promise<any>;
|
||||
finally<TResult>(handler: () => PromiseLike<TResult>): Promise<any>;
|
||||
finally<TResult>(handler: () => TResult): Promise<any>;
|
||||
promise(): Promise<any>;
|
||||
import errors = require('request-promise/errors');
|
||||
|
||||
namespace requestPromise {
|
||||
interface RequestPromise extends request.Request {
|
||||
then<TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): Promise<TResult>;
|
||||
catch(onrejected?: (reason: any) => any | PromiseLike<any>): Promise<any>;
|
||||
catch(onrejected?: (reason: any) => void): Promise<any>;
|
||||
catch(type: errors.RequestErrorConstructor, onrejected?: (reason: errors.RequestError) => void): Promise<any>;
|
||||
catch(type: errors.StatusCodeErrorConstructor, onrejected?: (reason: errors.StatusCodeError) => void): Promise<any>;
|
||||
catch(type: errors.TransformErrorConstructor, onrejected?: (reason: errors.TransformError) => void): Promise<any>;
|
||||
finally<TResult>(handler: () => PromiseLike<TResult>): Promise<any>;
|
||||
finally<TResult>(handler: () => TResult): Promise<any>;
|
||||
promise(): Promise<any>;
|
||||
}
|
||||
|
||||
interface RequestPromiseOptions extends request.CoreOptions {
|
||||
simple?: boolean;
|
||||
transform?: (body: any, response: http.IncomingMessage, resolveWithFullResponse?: boolean) => any;
|
||||
resolveWithFullResponse?: boolean;
|
||||
}
|
||||
|
||||
export type OptionsWithUri = request.UriOptions & RequestPromiseOptions;
|
||||
export type OptionsWithUrl = request.UrlOptions & RequestPromiseOptions;
|
||||
export type Options = OptionsWithUri | OptionsWithUrl;
|
||||
}
|
||||
|
||||
interface RequestPromiseOptions extends request.CoreOptions {
|
||||
simple?: boolean;
|
||||
transform?: (body: any, response: http.IncomingMessage) => any;
|
||||
resolveWithFullResponse?: boolean;
|
||||
}
|
||||
|
||||
var requestPromise: request.RequestAPI<RequestPromise, RequestPromiseOptions, request.RequiredUriUrl>;
|
||||
|
||||
var requestPromise: request.RequestAPI<requestPromise.RequestPromise, requestPromise.RequestPromiseOptions, request.RequiredUriUrl>;
|
||||
export = requestPromise;
|
||||
}
|
||||
declare module 'request-promise/errors' {
|
||||
import rp = require('request-promise');
|
||||
import http = require('http');
|
||||
|
||||
export interface RequestError extends Error {
|
||||
cause: any;
|
||||
error: any;
|
||||
options: rp.Options;
|
||||
response: http.IncomingMessage;
|
||||
}
|
||||
export interface RequestErrorConstructor {
|
||||
new (cause: any, options: rp.Options, response: http.IncomingMessage): RequestError;
|
||||
(cause: any, options: rp.Options, response: http.IncomingMessage): RequestError;
|
||||
prototype: RequestError;
|
||||
}
|
||||
export const RequestError: RequestErrorConstructor;
|
||||
|
||||
export interface StatusCodeError extends Error {
|
||||
statusCode: number;
|
||||
error: any;
|
||||
options: rp.Options;
|
||||
response: http.IncomingMessage;
|
||||
}
|
||||
export interface StatusCodeErrorConstructor extends Error {
|
||||
new (statusCode: number, body: any, options: rp.Options, response: http.IncomingMessage): StatusCodeError;
|
||||
(statusCode: number, body: any, options: rp.Options, response: http.IncomingMessage): StatusCodeError;
|
||||
prototype: StatusCodeError;
|
||||
}
|
||||
export const StatusCodeError: StatusCodeErrorConstructor;
|
||||
|
||||
export interface TransformError extends Error {
|
||||
cause: any;
|
||||
error: any;
|
||||
options: rp.Options;
|
||||
response: http.IncomingMessage;
|
||||
}
|
||||
export interface TransformErrorConstructor extends Error {
|
||||
new (cause: any, options: rp.Options, response: http.IncomingMessage): TransformError;
|
||||
(cause: any, options: rp.Options, response: http.IncomingMessage): TransformError;
|
||||
prototype: TransformError;
|
||||
}
|
||||
export const TransformError: TransformErrorConstructor;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user