2
0
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:
Dmitriy Mozgovoy
2023-01-26 16:01:06 +02:00
committed by GitHub
parent 6600d51e6b
commit 580f1e8033
4 changed files with 77 additions and 49 deletions
+27 -24
View File
@@ -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
View File
@@ -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;
+11
View File
@@ -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
}
});
}
+11
View File
@@ -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
}
});
}