Skip to content

Commit cf9f123

Browse files
committed
fix jsdoc warnings and tweak internal variable names
1 parent 8946594 commit cf9f123

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

index.js

+26-19
Original file line numberDiff line numberDiff line change
@@ -72,18 +72,21 @@ function cloneOptionObject(obj) {
7272
}
7373

7474
/**
75-
* @param merged already cloned
76-
* @return cloned Object
75+
* @param {*} merged already cloned
76+
* @param {*} source something to merge
77+
* @param {string[]} keys keys to merge
78+
* @param {Object} config Config Object
79+
* @returns {*} cloned Object
7780
*/
78-
const mergeKeys = (merged, source, keys, mergeOpts) => {
81+
const mergeKeys = (merged, source, keys, config) => {
7982
keys.forEach(key => {
80-
if (typeof source[key] === 'undefined' && mergeOpts.ignoreUndefined) {
83+
if (typeof source[key] === 'undefined' && config.ignoreUndefined) {
8184
return;
8285
}
8386

8487
// Do not recurse into prototype chain of merged
8588
if (key in merged && merged[key] !== Object.getPrototypeOf(merged)) {
86-
defineProperty(merged, key, merge(merged[key], source[key], mergeOpts));
89+
defineProperty(merged, key, merge(merged[key], source[key], config));
8790
} else {
8891
defineProperty(merged, key, clone(source[key]));
8992
}
@@ -93,12 +96,14 @@ const mergeKeys = (merged, source, keys, mergeOpts) => {
9396
};
9497

9598
/**
96-
* @param merged already cloned
97-
* @return cloned Object
99+
* @param {*} merged already cloned
100+
* @param {*} source something to merge
101+
* @param {Object} config Config Object
102+
* @returns {*} cloned Object
98103
*
99104
* see [Array.prototype.concat ( ...arguments )](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.concat)
100105
*/
101-
const concatArrays = (merged, source, mergeOpts) => {
106+
const concatArrays = (merged, source, config) => {
102107
let result = merged.slice(0, 0);
103108
let resultIndex = 0;
104109

@@ -124,31 +129,33 @@ const concatArrays = (merged, source, mergeOpts) => {
124129
// Merge non-index keys
125130
result = mergeKeys(result, array, getEnumerableOwnPropertyKeys(array).filter(key => {
126131
return indices.indexOf(key) === -1;
127-
}), mergeOpts);
132+
}), config);
128133
});
129134

130135
return result;
131136
};
132137

133138
/**
134-
* @param merged already cloned
135-
* @return cloned Object
139+
* @param {*} merged already cloned
140+
* @param {*} source something to merge
141+
* @param {Object} config Config Object
142+
* @returns {*} cloned Object
136143
*/
137-
function merge(merged, source, mergeOpts) {
138-
if (mergeOpts.concatArrays && Array.isArray(merged) && Array.isArray(source)) {
139-
return concatArrays(merged, source, mergeOpts);
144+
function merge(merged, source, config) {
145+
if (config.concatArrays && Array.isArray(merged) && Array.isArray(source)) {
146+
return concatArrays(merged, source, config);
140147
}
141148

142149
if (!isOptionObject(source) || !isOptionObject(merged)) {
143150
return clone(source);
144151
}
145152

146-
return mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), mergeOpts);
153+
return mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), config);
147154
}
148155

149156
module.exports = function (...options) {
150-
const mergeOpts = merge(clone(defaultMergeOpts), (this !== globalThis && this) || {}, defaultMergeOpts);
151-
let merged = {foobar: {}};
157+
const config = merge(clone(defaultMergeOpts), (this !== globalThis && this) || {}, defaultMergeOpts);
158+
let merged = {_: {}};
152159

153160
for (const option of options) {
154161
if (option === undefined) {
@@ -159,8 +166,8 @@ module.exports = function (...options) {
159166
throw new TypeError('`' + option + '` is not an Option Object');
160167
}
161168

162-
merged = merge(merged, {foobar: option}, mergeOpts);
169+
merged = merge(merged, {_: option}, config);
163170
}
164171

165-
return merged.foobar;
172+
return merged._;
166173
};

0 commit comments

Comments
 (0)