Skip to content

Commit 54dcaef

Browse files
committed
fix: merge options with nested default nested
1 parent 92a2de1 commit 54dcaef

File tree

3 files changed

+47
-22
lines changed

3 files changed

+47
-22
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
"common-tags": "^1.8.0",
4747
"cross-fetch": "^3.0.4",
4848
"debug": "^4.1.1",
49+
"defaults-deep": "^0.2.4",
4950
"qs": "^6.8.0",
5051
"url-join": "^4.0.1",
5152
"url-parse": "^1.4.7"

src/index.js

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const urlJoin = require('url-join');
44
const URL = require('url-parse');
55
const debug = require('debug')('frisbee');
66
const boolean = require('boolean');
7+
const defaults = require('defaults-deep');
78

89
// eslint-disable-next-line import/no-unassigned-import
910
require('cross-fetch/polyfill');
@@ -94,28 +95,30 @@ function createFrisbeeResponse(origResp) {
9495

9596
class Frisbee {
9697
constructor(opts = {}) {
97-
this.opts = {
98-
parse: {
99-
ignoreQueryPrefix: true
100-
},
101-
stringify: {
102-
addQueryPrefix: true,
103-
format: 'RFC1738',
104-
arrayFormat: 'indices'
98+
this.opts = defaults(
99+
{
100+
preventBodyOnMethods: ['GET', 'HEAD', 'DELETE', 'CONNECT'],
101+
interceptableMethods: METHODS,
102+
mode: 'same-origin',
103+
cache: 'default',
104+
credentials: 'same-origin',
105+
redirect: 'follow',
106+
referrer: 'client',
107+
body: null,
108+
params: null,
109+
logRequest: false,
110+
logResponse: false,
111+
parse: {
112+
ignoreQueryPrefix: true
113+
},
114+
stringify: {
115+
addQueryPrefix: true,
116+
format: 'RFC1738',
117+
arrayFormat: 'indices'
118+
}
105119
},
106-
preventBodyOnMethods: ['GET', 'HEAD', 'DELETE', 'CONNECT'],
107-
interceptableMethods: METHODS,
108-
mode: 'same-origin',
109-
cache: 'default',
110-
credentials: 'same-origin',
111-
redirect: 'follow',
112-
referrer: 'client',
113-
body: null,
114-
params: null,
115-
logRequest: false,
116-
logResponse: false,
117-
...opts
118-
};
120+
opts
121+
);
119122

120123
let localAbortController;
121124
Object.defineProperty(this, 'abortController', {

yarn.lock

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2863,6 +2863,15 @@ default-require-extensions@^2.0.0:
28632863
dependencies:
28642864
strip-bom "^3.0.0"
28652865

2866+
defaults-deep@^0.2.4:
2867+
version "0.2.4"
2868+
resolved "https://registry.yarnpkg.com/defaults-deep/-/defaults-deep-0.2.4.tgz#a479cfeafce025810fb93aa8d2dde0ee2d677cc6"
2869+
integrity sha512-V6BtqzcMvn0EPOy7f+SfMhfmTawq+7UQdt9yZH0EBK89+IHo5f+Hse/qzTorAXOBrQpxpwb6cB/8OgtaMrT+Fg==
2870+
dependencies:
2871+
for-own "^0.1.3"
2872+
is-extendable "^0.1.1"
2873+
lazy-cache "^0.2.3"
2874+
28662875
defaults@^1.0.3:
28672876
version "1.0.3"
28682877
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
@@ -4141,11 +4150,18 @@ fn-name@^2.0.1:
41414150
resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
41424151
integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=
41434152

4144-
for-in@^1.0.2:
4153+
for-in@^1.0.1, for-in@^1.0.2:
41454154
version "1.0.2"
41464155
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
41474156
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
41484157

4158+
for-own@^0.1.3:
4159+
version "0.1.5"
4160+
resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
4161+
integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
4162+
dependencies:
4163+
for-in "^1.0.1"
4164+
41494165
foreach@^2.0.5:
41504166
version "2.0.5"
41514167
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
@@ -5601,6 +5617,11 @@ latest-version@^5.0.0:
56015617
dependencies:
56025618
package-json "^6.3.0"
56035619

5620+
lazy-cache@^0.2.3:
5621+
version "0.2.7"
5622+
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65"
5623+
integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=
5624+
56045625
levenshtein-edit-distance@^1.0.0:
56055626
version "1.0.0"
56065627
resolved "https://registry.yarnpkg.com/levenshtein-edit-distance/-/levenshtein-edit-distance-1.0.0.tgz#895baf478cce8b5c1a0d27e45d7c1d978a661e49"

0 commit comments

Comments
 (0)