Comparing version 14.3.0 to 14.4.0
/// <reference types="node" resolution-mode="require"/> | ||
import type { Buffer } from 'node:buffer'; | ||
import type { Spread } from 'type-fest'; | ||
import type { CancelableRequest } from './as-promise/types.js'; | ||
@@ -63,21 +64,2 @@ import type { Response } from './core/response.js'; | ||
} & OptionsInit; | ||
export type OptionsOfTextResponseBody = Merge<OptionsInit, { | ||
isStream?: false; | ||
resolveBodyOnly?: false; | ||
responseType?: 'text'; | ||
}>; | ||
export type OptionsOfJSONResponseBody = Merge<OptionsInit, { | ||
isStream?: false; | ||
resolveBodyOnly?: false; | ||
responseType?: 'json'; | ||
}>; | ||
export type OptionsOfBufferResponseBody = Merge<OptionsInit, { | ||
isStream?: false; | ||
resolveBodyOnly?: false; | ||
responseType: 'buffer'; | ||
}>; | ||
export type OptionsOfUnknownResponseBody = Merge<OptionsInit, { | ||
isStream?: false; | ||
resolveBodyOnly?: false; | ||
}>; | ||
export type StrictOptions = Except<OptionsInit, 'isStream' | 'responseType' | 'resolveBodyOnly'>; | ||
@@ -87,5 +69,2 @@ export type StreamOptions = Merge<OptionsInit, { | ||
}>; | ||
type ResponseBodyOnly = { | ||
resolveBodyOnly: true; | ||
}; | ||
export type OptionsWithPagination<T = unknown, R = unknown> = Merge<OptionsInit, { | ||
@@ -150,17 +129,80 @@ pagination?: PaginationOptions<T, R>; | ||
}; | ||
export type GotRequestFunction = { | ||
(url: string | URL, options?: OptionsOfTextResponseBody): CancelableRequest<Response<string>>; | ||
<T>(url: string | URL, options?: OptionsOfJSONResponseBody): CancelableRequest<Response<T>>; | ||
(url: string | URL, options?: OptionsOfBufferResponseBody): CancelableRequest<Response<Buffer>>; | ||
(url: string | URL, options?: OptionsOfUnknownResponseBody): CancelableRequest<Response>; | ||
(options: OptionsOfTextResponseBody): CancelableRequest<Response<string>>; | ||
<T>(options: OptionsOfJSONResponseBody): CancelableRequest<Response<T>>; | ||
(options: OptionsOfBufferResponseBody): CancelableRequest<Response<Buffer>>; | ||
(options: OptionsOfUnknownResponseBody): CancelableRequest<Response>; | ||
(url: string | URL, options?: (Merge<OptionsOfTextResponseBody, ResponseBodyOnly>)): CancelableRequest<string>; | ||
<T>(url: string | URL, options?: (Merge<OptionsOfJSONResponseBody, ResponseBodyOnly>)): CancelableRequest<T>; | ||
(url: string | URL, options?: (Merge<OptionsOfBufferResponseBody, ResponseBodyOnly>)): CancelableRequest<Buffer>; | ||
(options: (Merge<OptionsOfTextResponseBody, ResponseBodyOnly>)): CancelableRequest<string>; | ||
<T>(options: (Merge<OptionsOfJSONResponseBody, ResponseBodyOnly>)): CancelableRequest<T>; | ||
(options: (Merge<OptionsOfBufferResponseBody, ResponseBodyOnly>)): CancelableRequest<Buffer>; | ||
export type OptionsOfTextResponseBody = Merge<StrictOptions, { | ||
isStream?: false; | ||
responseType?: 'text'; | ||
}>; | ||
export type OptionsOfTextResponseBodyOnly = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: true; | ||
responseType?: 'text'; | ||
}>; | ||
export type OptionsOfTextResponseBodyWrapped = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: false; | ||
responseType?: 'text'; | ||
}>; | ||
export type OptionsOfJSONResponseBody = Merge<StrictOptions, { | ||
isStream?: false; | ||
responseType?: 'json'; | ||
}>; | ||
export type OptionsOfJSONResponseBodyOnly = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: true; | ||
responseType?: 'json'; | ||
}>; | ||
export type OptionsOfJSONResponseBodyWrapped = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: false; | ||
responseType?: 'json'; | ||
}>; | ||
export type OptionsOfBufferResponseBody = Merge<StrictOptions, { | ||
isStream?: false; | ||
responseType?: 'buffer'; | ||
}>; | ||
export type OptionsOfBufferResponseBodyOnly = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: true; | ||
responseType?: 'buffer'; | ||
}>; | ||
export type OptionsOfBufferResponseBodyWrapped = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: false; | ||
responseType?: 'buffer'; | ||
}>; | ||
export type OptionsOfUnknownResponseBody = Merge<StrictOptions, { | ||
isStream?: false; | ||
}>; | ||
export type OptionsOfUnknownResponseBodyOnly = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: true; | ||
}>; | ||
export type OptionsOfUnknownResponseBodyWrapped = Merge<StrictOptions, { | ||
isStream?: false; | ||
resolveBodyOnly: false; | ||
}>; | ||
export type GotRequestFunction<U extends ExtendOptions = Record<string, unknown>> = { | ||
(url: string | URL, options?: OptionsOfTextResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<string> : CancelableRequest<Response<string>>; | ||
<T>(url: string | URL, options?: OptionsOfJSONResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<T> : CancelableRequest<Response<T>>; | ||
(url: string | URL, options?: OptionsOfBufferResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<Buffer> : CancelableRequest<Response<Buffer>>; | ||
(url: string | URL, options?: OptionsOfUnknownResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest : CancelableRequest<Response>; | ||
(url: string | URL, options?: OptionsOfTextResponseBodyWrapped): CancelableRequest<Response<string>>; | ||
<T>(url: string | URL, options?: OptionsOfJSONResponseBodyWrapped): CancelableRequest<Response<T>>; | ||
(url: string | URL, options?: OptionsOfBufferResponseBodyWrapped): CancelableRequest<Response<Buffer>>; | ||
(url: string | URL, options?: OptionsOfUnknownResponseBodyWrapped): CancelableRequest<Response>; | ||
(url: string | URL, options?: OptionsOfTextResponseBodyOnly): CancelableRequest<string>; | ||
<T>(url: string | URL, options?: OptionsOfJSONResponseBodyOnly): CancelableRequest<T>; | ||
(url: string | URL, options?: OptionsOfBufferResponseBodyOnly): CancelableRequest<Buffer>; | ||
(url: string | URL, options?: OptionsOfUnknownResponseBodyOnly): CancelableRequest; | ||
(options: OptionsOfTextResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<string> : CancelableRequest<Response<string>>; | ||
<T>(options: OptionsOfJSONResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<T> : CancelableRequest<Response<T>>; | ||
(options: OptionsOfBufferResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<Buffer> : CancelableRequest<Response<Buffer>>; | ||
(options: OptionsOfUnknownResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest : CancelableRequest<Response>; | ||
(options: OptionsOfTextResponseBodyWrapped): CancelableRequest<Response<string>>; | ||
<T>(options: OptionsOfJSONResponseBodyWrapped): CancelableRequest<Response<T>>; | ||
(options: OptionsOfBufferResponseBodyWrapped): CancelableRequest<Response<Buffer>>; | ||
(options: OptionsOfUnknownResponseBodyWrapped): CancelableRequest<Response>; | ||
(options: OptionsOfTextResponseBodyOnly): CancelableRequest<string>; | ||
<T>(options: OptionsOfJSONResponseBodyOnly): CancelableRequest<T>; | ||
(options: OptionsOfBufferResponseBodyOnly): CancelableRequest<Buffer>; | ||
(options: OptionsOfUnknownResponseBodyOnly): CancelableRequest; | ||
(url: string | URL, options?: Merge<OptionsInit, { | ||
@@ -192,3 +234,3 @@ isStream: true; | ||
*/ | ||
export type Got = { | ||
export type Got<GotOptions extends ExtendOptions = ExtendOptions> = { | ||
/** | ||
@@ -263,4 +305,9 @@ Sets `options.isStream` to `true`. | ||
*/ | ||
extend: (...instancesOrOptions: Array<Got | ExtendOptions>) => Got; | ||
} & Record<HTTPAlias, GotRequestFunction> & GotRequestFunction; | ||
extend<T extends Array<Got | ExtendOptions>>(...instancesOrOptions: T): Got<MergeExtendsConfig<T>>; | ||
} & Record<HTTPAlias, GotRequestFunction<GotOptions>> & GotRequestFunction<GotOptions>; | ||
export type ExtractExtendOptions<T> = T extends Got<infer GotOptions> ? GotOptions : T; | ||
/** | ||
Merges the options of multiple Got instances. | ||
*/ | ||
export type MergeExtendsConfig<Value extends Array<Got | ExtendOptions>> = Value extends readonly [Value[0], ...infer NextValue] ? NextValue[0] extends undefined ? Value[0] extends infer OnlyValue ? OnlyValue extends ExtendOptions ? OnlyValue : OnlyValue extends Got<infer GotOptions> ? GotOptions : OnlyValue : never : ExtractExtendOptions<Value[0]> extends infer FirstArg extends ExtendOptions ? ExtractExtendOptions<NextValue[0] extends ExtendOptions | Got ? NextValue[0] : never> extends infer NextArg extends ExtendOptions ? Spread<FirstArg, NextArg> extends infer Merged extends ExtendOptions ? NextValue extends [NextValue[0], ...infer NextRest] ? NextRest extends Array<Got | ExtendOptions> ? MergeExtendsConfig<[Merged, ...NextRest]> : never : never : never : never : never : never; | ||
export {}; |
{ | ||
"name": "got", | ||
"version": "14.3.0", | ||
"version": "14.4.0", | ||
"description": "Human-friendly and powerful HTTP request library for Node.js", | ||
@@ -84,2 +84,3 @@ "license": "MIT", | ||
"delay": "^6.0.0", | ||
"expect-type": "^0.19.0", | ||
"express": "^4.19.2", | ||
@@ -109,3 +110,4 @@ "form-data": "^4.0.0", | ||
"files": [ | ||
"test/*" | ||
"test/*", | ||
"!test/*.types.ts" | ||
], | ||
@@ -112,0 +114,0 @@ "timeout": "10m", |
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
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
244951
5345
42