mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Fix some fringe cases for specifying a default URL or URI
This commit is contained in:
@@ -31,6 +31,22 @@ var bodyArr: request.RequestPart[] = [{
|
||||
body: value
|
||||
}];
|
||||
|
||||
//Defaults tests
|
||||
(() => {
|
||||
const githubUrl = 'https://github.com';
|
||||
const defaultJarRequest = request.defaults({ jar: true });
|
||||
defaultJarRequest.get(githubUrl);
|
||||
//defaultJarRequest(); //this line doesn't compile (and shouldn't)
|
||||
const defaultUrlRequest = request.defaults({ url: githubUrl });
|
||||
defaultUrlRequest();
|
||||
defaultUrlRequest.get();
|
||||
const defaultBodyRequest = defaultUrlRequest.defaults({body: '{}', json: true});
|
||||
defaultBodyRequest.get();
|
||||
defaultBodyRequest.post();
|
||||
defaultBodyRequest.put();
|
||||
})();
|
||||
|
||||
|
||||
// --- --- --- --- --- --- --- --- --- --- --- ---
|
||||
|
||||
obj = req.toJSON();
|
||||
@@ -526,6 +542,9 @@ var specialRequest = baseRequest.defaults({
|
||||
headers: {special: 'special value'}
|
||||
});
|
||||
|
||||
const urlRequest = specialRequest.defaults({url: 'https://github.com'});
|
||||
urlRequest({}, function(error, response, body) {console.log(body);});
|
||||
|
||||
request.put(url);
|
||||
request.patch(url);
|
||||
request.post(url);
|
||||
|
||||
Vendored
+41
-26
@@ -16,35 +16,39 @@ declare module 'request' {
|
||||
import fs = require('fs');
|
||||
|
||||
namespace request {
|
||||
export interface RequestAPI<TRequest extends Request, TOptions extends OptionalOptions> {
|
||||
defaults(options: OptionalUriUrl & TOptions): RequestAPI<TRequest, OptionalUriUrl & TOptions>;
|
||||
export interface RequestAPI<TRequest extends Request,
|
||||
TOptions extends CoreOptions,
|
||||
TUriUrlOptions> {
|
||||
defaults(options: TOptions): RequestAPI<TRequest, TOptions, RequiredUriUrl>;
|
||||
defaults(options: RequiredUriUrl & TOptions): DefaultUriUrlRequestApi<TRequest, TOptions, OptionalUriUrl>;
|
||||
|
||||
(uri: string, options?: TOptions, callback?: RequestCallback): TRequest;
|
||||
(uri: string, callback?: RequestCallback): TRequest;
|
||||
(options?: RequiredOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
(options: TUriUrlOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
|
||||
get(uri: string, options?: TOptions, callback?: RequestCallback): TRequest;
|
||||
get(uri: string, callback?: RequestCallback): TRequest;
|
||||
get(options: RequiredOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
get(options: TUriUrlOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
|
||||
post(uri: string, options?: TOptions, callback?: RequestCallback): TRequest;
|
||||
post(uri: string, callback?: RequestCallback): TRequest;
|
||||
post(options: RequiredOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
post(options: TUriUrlOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
|
||||
put(uri: string, options?: TOptions, callback?: RequestCallback): TRequest;
|
||||
put(uri: string, callback?: RequestCallback): TRequest;
|
||||
put(options: RequiredOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
put(options: TUriUrlOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
|
||||
head(uri: string, options?: TOptions, callback?: RequestCallback): TRequest;
|
||||
head(uri: string, callback?: RequestCallback): TRequest;
|
||||
head(options: RequiredOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
head(options: TUriUrlOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
|
||||
patch(uri: string, options?: TOptions, callback?: RequestCallback): TRequest;
|
||||
patch(uri: string, callback?: RequestCallback): TRequest;
|
||||
patch(options: RequiredOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
patch(options: TUriUrlOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
|
||||
del(uri: string, options?: TOptions, callback?: RequestCallback): TRequest;
|
||||
del(uri: string, callback?: RequestCallback): TRequest;
|
||||
del(options: RequiredOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
del(options: TUriUrlOptions & TOptions, callback?: RequestCallback): TRequest;
|
||||
|
||||
forever(agentOptions: any, optionsArg: any): TRequest;
|
||||
jar(): CookieJar;
|
||||
@@ -53,21 +57,22 @@ declare module 'request' {
|
||||
initParams: any;
|
||||
debug: boolean;
|
||||
}
|
||||
|
||||
interface UriOptions {
|
||||
uri: string;
|
||||
|
||||
interface DefaultUriUrlRequestApi<TRequest extends Request,
|
||||
TOptions extends CoreOptions,
|
||||
TUriUrlOptions>
|
||||
extends RequestAPI<TRequest, TOptions, TUriUrlOptions> {
|
||||
defaults(options: TOptions): DefaultUriUrlRequestApi<TRequest, TOptions, OptionalUriUrl>;
|
||||
(): TRequest;
|
||||
get(): TRequest;
|
||||
post(): TRequest;
|
||||
put(): TRequest;
|
||||
head(): TRequest;
|
||||
patch(): TRequest;
|
||||
del(): TRequest;
|
||||
}
|
||||
|
||||
interface UrlOptions {
|
||||
url: string;
|
||||
}
|
||||
|
||||
interface OptionalUriUrl {
|
||||
uri?: string;
|
||||
url?: string;
|
||||
}
|
||||
|
||||
interface OptionalOptions {
|
||||
interface CoreOptions {
|
||||
baseUrl?: string;
|
||||
callback?: (error: any, response: http.IncomingMessage, body: any) => void;
|
||||
jar?: any; // CookieJar
|
||||
@@ -106,9 +111,19 @@ declare module 'request' {
|
||||
har?: HttpArchiveRequest;
|
||||
}
|
||||
|
||||
export type RequiredOptions = UriOptions | UrlOptions;
|
||||
export type Options = RequiredOptions & OptionalOptions;
|
||||
export type DefaultsOptions = OptionalUriUrl & OptionalOptions;
|
||||
interface UriOptions {
|
||||
uri: string;
|
||||
}
|
||||
interface UrlOptions {
|
||||
url: string;
|
||||
}
|
||||
export type RequiredUriUrl = UriOptions | UrlOptions;
|
||||
|
||||
interface OptionalUriUrl {
|
||||
uri?: string;
|
||||
url?: string;
|
||||
}
|
||||
export type Options = RequiredUriUrl & CoreOptions;
|
||||
|
||||
export interface RequestCallback {
|
||||
(error: any, response: http.IncomingMessage, body: any): void;
|
||||
@@ -230,6 +245,6 @@ declare module 'request' {
|
||||
toString(): string;
|
||||
}
|
||||
}
|
||||
var request: request.RequestAPI<request.Request, request.OptionalOptions>;
|
||||
var request: request.RequestAPI<request.Request, request.CoreOptions, request.RequiredUriUrl>;
|
||||
export = request;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user