mirror of
https://github.com/tenrok/axios.git
synced 2026-06-17 19:21:29 +03:00
fix(types): fixed AxiosHeaders to handle spread syntax by making all methods non-enumerable; (#5499)
This commit is contained in:
+27
-24
@@ -10,13 +10,6 @@ type MethodsHeaders = Partial<{
|
|||||||
|
|
||||||
type AxiosHeaderMatcher = (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean;
|
type AxiosHeaderMatcher = (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean;
|
||||||
|
|
||||||
type AxiosHeaderSetter = (value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher) => AxiosHeaders;
|
|
||||||
|
|
||||||
type AxiosHeaderGetter = ((parser?: RegExp) => RegExpExecArray | null) |
|
|
||||||
((matcher?: AxiosHeaderMatcher) => AxiosHeaderValue);
|
|
||||||
|
|
||||||
type AxiosHeaderTester = (matcher?: AxiosHeaderMatcher) => boolean;
|
|
||||||
|
|
||||||
declare class AxiosHeaders {
|
declare class AxiosHeaders {
|
||||||
constructor(
|
constructor(
|
||||||
headers?: RawAxiosHeaders | AxiosHeaders
|
headers?: RawAxiosHeaders | AxiosHeaders
|
||||||
@@ -38,7 +31,7 @@ declare class AxiosHeaders {
|
|||||||
|
|
||||||
normalize(format: boolean): AxiosHeaders;
|
normalize(format: boolean): AxiosHeaders;
|
||||||
|
|
||||||
concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string>): AxiosHeaders;
|
concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string | undefined | null>): AxiosHeaders;
|
||||||
|
|
||||||
toJSON(asStrings?: boolean): RawAxiosHeaders;
|
toJSON(asStrings?: boolean): RawAxiosHeaders;
|
||||||
|
|
||||||
@@ -46,27 +39,37 @@ declare class AxiosHeaders {
|
|||||||
|
|
||||||
static accessor(header: string | string[]): AxiosHeaders;
|
static accessor(header: string | string[]): AxiosHeaders;
|
||||||
|
|
||||||
static concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string>): AxiosHeaders;
|
static concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string | undefined | null>): AxiosHeaders;
|
||||||
|
|
||||||
setContentType: AxiosHeaderSetter;
|
setContentType(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getContentType: AxiosHeaderGetter;
|
getContentType(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasContentType: AxiosHeaderTester;
|
getContentType(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasContentType(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setContentLength: AxiosHeaderSetter;
|
setContentLength(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getContentLength: AxiosHeaderGetter;
|
getContentLength(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasContentLength: AxiosHeaderTester;
|
getContentLength(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasContentLength(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setAccept: AxiosHeaderSetter;
|
setAccept(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getAccept: AxiosHeaderGetter;
|
getAccept(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasAccept: AxiosHeaderTester;
|
getAccept(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasAccept(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setUserAgent: AxiosHeaderSetter;
|
setUserAgent(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getUserAgent: AxiosHeaderGetter;
|
getUserAgent(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasUserAgent: AxiosHeaderTester;
|
getUserAgent(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasUserAgent(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setContentEncoding: AxiosHeaderSetter;
|
setContentEncoding(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getContentEncoding: AxiosHeaderGetter;
|
getContentEncoding(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasContentEncoding: AxiosHeaderTester;
|
getContentEncoding(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasContentEncoding(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
|
setAuthorization(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
|
getAuthorization(parser?: RegExp): RegExpExecArray | null;
|
||||||
|
getAuthorization(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasAuthorization(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
[Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>;
|
[Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>;
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+28
-25
@@ -11,13 +11,6 @@ type MethodsHeaders = Partial<{
|
|||||||
|
|
||||||
type AxiosHeaderMatcher = (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean;
|
type AxiosHeaderMatcher = (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean;
|
||||||
|
|
||||||
type AxiosHeaderSetter = (value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher) => AxiosHeaders;
|
|
||||||
|
|
||||||
type AxiosHeaderGetter = ((parser?: RegExp) => RegExpExecArray | null) |
|
|
||||||
((matcher?: AxiosHeaderMatcher) => AxiosHeaderValue);
|
|
||||||
|
|
||||||
type AxiosHeaderTester = (matcher?: AxiosHeaderMatcher) => boolean;
|
|
||||||
|
|
||||||
export class AxiosHeaders {
|
export class AxiosHeaders {
|
||||||
constructor(
|
constructor(
|
||||||
headers?: RawAxiosHeaders | AxiosHeaders
|
headers?: RawAxiosHeaders | AxiosHeaders
|
||||||
@@ -39,7 +32,7 @@ export class AxiosHeaders {
|
|||||||
|
|
||||||
normalize(format: boolean): AxiosHeaders;
|
normalize(format: boolean): AxiosHeaders;
|
||||||
|
|
||||||
concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string>): AxiosHeaders;
|
concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string | undefined | null>): AxiosHeaders;
|
||||||
|
|
||||||
toJSON(asStrings?: boolean): RawAxiosHeaders;
|
toJSON(asStrings?: boolean): RawAxiosHeaders;
|
||||||
|
|
||||||
@@ -47,32 +40,42 @@ export class AxiosHeaders {
|
|||||||
|
|
||||||
static accessor(header: string | string[]): AxiosHeaders;
|
static accessor(header: string | string[]): AxiosHeaders;
|
||||||
|
|
||||||
static concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string>): AxiosHeaders;
|
static concat(...targets: Array<AxiosHeaders | RawAxiosHeaders | string | undefined | null>): AxiosHeaders;
|
||||||
|
|
||||||
setContentType: AxiosHeaderSetter;
|
setContentType(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getContentType: AxiosHeaderGetter;
|
getContentType(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasContentType: AxiosHeaderTester;
|
getContentType(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasContentType(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setContentLength: AxiosHeaderSetter;
|
setContentLength(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getContentLength: AxiosHeaderGetter;
|
getContentLength(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasContentLength: AxiosHeaderTester;
|
getContentLength(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasContentLength(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setAccept: AxiosHeaderSetter;
|
setAccept(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getAccept: AxiosHeaderGetter;
|
getAccept(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasAccept: AxiosHeaderTester;
|
getAccept(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasAccept(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setUserAgent: AxiosHeaderSetter;
|
setUserAgent(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getUserAgent: AxiosHeaderGetter;
|
getUserAgent(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasUserAgent: AxiosHeaderTester;
|
getUserAgent(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasUserAgent(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
setContentEncoding: AxiosHeaderSetter;
|
setContentEncoding(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
getContentEncoding: AxiosHeaderGetter;
|
getContentEncoding(parser?: RegExp): RegExpExecArray | null;
|
||||||
hasContentEncoding: AxiosHeaderTester;
|
getContentEncoding(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasContentEncoding(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
|
setAuthorization(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders;
|
||||||
|
getAuthorization(parser?: RegExp): RegExpExecArray | null;
|
||||||
|
getAuthorization(matcher?: AxiosHeaderMatcher): AxiosHeaderValue;
|
||||||
|
hasAuthorization(matcher?: AxiosHeaderMatcher): boolean;
|
||||||
|
|
||||||
[Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>;
|
[Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>;
|
||||||
}
|
}
|
||||||
|
|
||||||
type CommonRequestHeadersList = 'Accept' | 'Content-Type' | 'Content-Length' | 'User-Agent'| 'Content-Encoding';
|
type CommonRequestHeadersList = 'Accept' | 'Content-Type' | 'Content-Length' | 'User-Agent' | 'Content-Encoding' | 'Authorization';
|
||||||
|
|
||||||
export type RawAxiosRequestHeaders = Partial<RawAxiosHeaders & {
|
export type RawAxiosRequestHeaders = Partial<RawAxiosHeaders & {
|
||||||
[Key in CommonRequestHeadersList]: AxiosHeaderValue;
|
[Key in CommonRequestHeadersList]: AxiosHeaderValue;
|
||||||
|
|||||||
@@ -496,3 +496,14 @@ for (const [header, value] of headers) {
|
|||||||
(error: any) => Promise.reject(error)
|
(error: any) => Promise.reject(error)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const config: axios.AxiosRequestConfig = {headers: new axios.AxiosHeaders({foo: 1})};
|
||||||
|
|
||||||
|
axios.get('', {
|
||||||
|
headers: {
|
||||||
|
bar: 2,
|
||||||
|
...config.headers
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@@ -616,3 +616,14 @@ for (const [header, value] of headers) {
|
|||||||
(error: any) => Promise.reject(error)
|
(error: any) => Promise.reject(error)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const config: AxiosRequestConfig = {headers: new AxiosHeaders({foo: 1})};
|
||||||
|
|
||||||
|
axios.get('', {
|
||||||
|
headers: {
|
||||||
|
bar: 2,
|
||||||
|
...config.headers
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user