Passed
Pull Request — master (#555)
by John
03:00
created

src/patchedRequest.js   A

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 19
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 8
mnd 1
bc 1
fnc 1
dl 0
loc 19
rs 10
bpm 1
cpm 2
noi 0
c 0
b 0
f 0
1
/**
2
 * @copyright Copyright (c) 2019 John Molakvoæ <[email protected]>
3
 *
4
 * @author John Molakvoæ <[email protected]>
5
 *
6
 * @license GNU AGPL version 3 or any later version
7
 *
8
 * This program is free software: you can redistribute it and/or modify
9
 * it under the terms of the GNU Affero General Public License as
10
 * published by the Free Software Foundation, either version 3 of the
11
 * License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
 * GNU Affero General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Affero General Public License
19
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20
 *
21
 */
22
23
const request = require('webdav/dist/request')
24
const merge = require('webdav/dist/merge')
25
26
const oldPrepareRequestOptions = request.prepareRequestOptions
27
28
// While we wait for official cancellable webdav requests
29
// https://github.com/perry-mitchell/webdav-client/issues/179
30
// let's properly forward our axios options through webdav to axios
31
32
request.prepareRequestOptions = function(requestOptions, methodOptions) {
33
	// add our cancelToken support
34
	if (methodOptions.cancelToken && typeof methodOptions.cancelToken === 'object') {
35
		requestOptions.cancelToken = merge(requestOptions.cancelToken || {}, methodOptions.cancelToken)
36
	}
37
	// exploit old method
38
	oldPrepareRequestOptions(requestOptions, methodOptions)
39
}
40
41
module.exports = request
42