diff --git a/index.d.cts b/index.d.cts index 5dcbc380..e91217b7 100644 --- a/index.d.cts +++ b/index.d.cts @@ -10,13 +10,6 @@ type MethodsHeaders = Partial<{ 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 { constructor( headers?: RawAxiosHeaders | AxiosHeaders @@ -38,7 +31,7 @@ declare class AxiosHeaders { normalize(format: boolean): AxiosHeaders; - concat(...targets: Array): AxiosHeaders; + concat(...targets: Array): AxiosHeaders; toJSON(asStrings?: boolean): RawAxiosHeaders; @@ -46,27 +39,37 @@ declare class AxiosHeaders { static accessor(header: string | string[]): AxiosHeaders; - static concat(...targets: Array): AxiosHeaders; + static concat(...targets: Array): AxiosHeaders; - setContentType: AxiosHeaderSetter; - getContentType: AxiosHeaderGetter; - hasContentType: AxiosHeaderTester; + setContentType(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentType(parser?: RegExp): RegExpExecArray | null; + getContentType(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasContentType(matcher?: AxiosHeaderMatcher): boolean; - setContentLength: AxiosHeaderSetter; - getContentLength: AxiosHeaderGetter; - hasContentLength: AxiosHeaderTester; + setContentLength(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentLength(parser?: RegExp): RegExpExecArray | null; + getContentLength(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasContentLength(matcher?: AxiosHeaderMatcher): boolean; - setAccept: AxiosHeaderSetter; - getAccept: AxiosHeaderGetter; - hasAccept: AxiosHeaderTester; + setAccept(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getAccept(parser?: RegExp): RegExpExecArray | null; + getAccept(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasAccept(matcher?: AxiosHeaderMatcher): boolean; - setUserAgent: AxiosHeaderSetter; - getUserAgent: AxiosHeaderGetter; - hasUserAgent: AxiosHeaderTester; + setUserAgent(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getUserAgent(parser?: RegExp): RegExpExecArray | null; + getUserAgent(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasUserAgent(matcher?: AxiosHeaderMatcher): boolean; - setContentEncoding: AxiosHeaderSetter; - getContentEncoding: AxiosHeaderGetter; - hasContentEncoding: AxiosHeaderTester; + setContentEncoding(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentEncoding(parser?: RegExp): RegExpExecArray | null; + 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]>; } diff --git a/index.d.ts b/index.d.ts index 4cde8ff0..0249403c 100644 --- a/index.d.ts +++ b/index.d.ts @@ -11,13 +11,6 @@ type MethodsHeaders = Partial<{ 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 { constructor( headers?: RawAxiosHeaders | AxiosHeaders @@ -39,7 +32,7 @@ export class AxiosHeaders { normalize(format: boolean): AxiosHeaders; - concat(...targets: Array): AxiosHeaders; + concat(...targets: Array): AxiosHeaders; toJSON(asStrings?: boolean): RawAxiosHeaders; @@ -47,32 +40,42 @@ export class AxiosHeaders { static accessor(header: string | string[]): AxiosHeaders; - static concat(...targets: Array): AxiosHeaders; + static concat(...targets: Array): AxiosHeaders; - setContentType: AxiosHeaderSetter; - getContentType: AxiosHeaderGetter; - hasContentType: AxiosHeaderTester; + setContentType(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentType(parser?: RegExp): RegExpExecArray | null; + getContentType(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasContentType(matcher?: AxiosHeaderMatcher): boolean; - setContentLength: AxiosHeaderSetter; - getContentLength: AxiosHeaderGetter; - hasContentLength: AxiosHeaderTester; + setContentLength(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentLength(parser?: RegExp): RegExpExecArray | null; + getContentLength(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasContentLength(matcher?: AxiosHeaderMatcher): boolean; - setAccept: AxiosHeaderSetter; - getAccept: AxiosHeaderGetter; - hasAccept: AxiosHeaderTester; + setAccept(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getAccept(parser?: RegExp): RegExpExecArray | null; + getAccept(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasAccept(matcher?: AxiosHeaderMatcher): boolean; - setUserAgent: AxiosHeaderSetter; - getUserAgent: AxiosHeaderGetter; - hasUserAgent: AxiosHeaderTester; + setUserAgent(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getUserAgent(parser?: RegExp): RegExpExecArray | null; + getUserAgent(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; + hasUserAgent(matcher?: AxiosHeaderMatcher): boolean; - setContentEncoding: AxiosHeaderSetter; - getContentEncoding: AxiosHeaderGetter; - hasContentEncoding: AxiosHeaderTester; + setContentEncoding(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + getContentEncoding(parser?: RegExp): RegExpExecArray | null; + 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]>; } -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 Promise.reject(error) ); } + +{ + const config: axios.AxiosRequestConfig = {headers: new axios.AxiosHeaders({foo: 1})}; + + axios.get('', { + headers: { + bar: 2, + ...config.headers + } + }); +} diff --git a/test/module/typings/esm/index.ts b/test/module/typings/esm/index.ts index c2e29da4..d7d4cdd9 100644 --- a/test/module/typings/esm/index.ts +++ b/test/module/typings/esm/index.ts @@ -616,3 +616,14 @@ for (const [header, value] of headers) { (error: any) => Promise.reject(error) ); } + +{ + const config: AxiosRequestConfig = {headers: new AxiosHeaders({foo: 1})}; + + axios.get('', { + headers: { + bar: 2, + ...config.headers + } + }); +}