@@ -9,22 +9,30 @@ import { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'
99import Axios from 'axios'
1010
1111export interface CancelableAxiosInstance extends AxiosInstance {
12+ /**
13+ * @deprecated - use the AbortController API instead
14+ */
1215 CancelToken : CancelTokenStatic
1316 isCancel : typeof Axios . isCancel
1417}
1518
16- const client = Axios . create ( {
17- headers : {
18- requesttoken : getRequestToken ( ) ?? '' ,
19- 'X-Requested-With' : 'XMLHttpRequest' ,
20- } ,
21- } )
19+ /**
20+ * Get an Axios instance with default Nextcloud headers and CSRF token handling.
21+ */
22+ export function getCancelableClient ( ) : CancelableAxiosInstance {
23+ const client = Axios . create ( {
24+ headers : {
25+ requesttoken : getRequestToken ( ) ?? '' ,
26+ 'X-Requested-With' : 'XMLHttpRequest' ,
27+ } ,
28+ } )
2229
23- onRequestTokenUpdate ( ( token : string ) => {
24- client . defaults . headers . requesttoken = token
25- } )
30+ onRequestTokenUpdate ( ( token : string ) => {
31+ client . defaults . headers . requesttoken = token
32+ } )
2633
27- export const cancelableClient : CancelableAxiosInstance = Object . assign ( client , {
28- CancelToken : Axios . CancelToken ,
29- isCancel : Axios . isCancel ,
30- } )
34+ return Object . assign ( client , {
35+ CancelToken : Axios . CancelToken ,
36+ isCancel : Axios . isCancel ,
37+ } )
38+ }
0 commit comments