Skip to content

Commit feda230

Browse files
authoredMay 28, 2021
refactor: Change order of arguments of internal domEach (#1892)
1 parent cba456e commit feda230

File tree

6 files changed

+35
-35
lines changed

6 files changed

+35
-35
lines changed
 

‎src/api/attributes.ts

+11-11
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,11 @@ export function attr<T extends Node>(
192192
throw new Error('Bad combination of arguments.');
193193
}
194194
}
195-
return domEach(this, (i, el) => {
195+
return domEach(this, (el, i) => {
196196
if (isTag(el)) setAttr(el, name, value.call(el, i, el.attribs[name]));
197197
});
198198
}
199-
return domEach(this, (_, el) => {
199+
return domEach(this, (el) => {
200200
if (!isTag(el)) return;
201201

202202
if (typeof name === 'object') {
@@ -362,12 +362,12 @@ export function prop<T extends Node>(
362362
if (typeof name === 'object') {
363363
throw new Error('Bad combination of arguments.');
364364
}
365-
return domEach(this, (j, el) => {
366-
if (isTag(el)) setProp(el, name, value.call(el, j, getProp(el, name)));
365+
return domEach(this, (el, i) => {
366+
if (isTag(el)) setProp(el, name, value.call(el, i, getProp(el, name)));
367367
});
368368
}
369369

370-
return domEach(this, (__, el) => {
370+
return domEach(this, (el) => {
371371
if (!isTag(el)) return;
372372

373373
if (typeof name === 'object') {
@@ -566,7 +566,7 @@ export function data<T extends Node>(
566566

567567
// Set the value (with attr map support)
568568
if (typeof name === 'object' || value !== undefined) {
569-
domEach(this, (_, el) => {
569+
domEach(this, (el) => {
570570
if (isTag(el))
571571
if (typeof name === 'object') setData(el, name);
572572
else setData(el, name, value as unknown);
@@ -711,7 +711,7 @@ export function removeAttr<T extends Node>(
711711
const attrNames = splitNames(name);
712712

713713
for (let i = 0; i < attrNames.length; i++) {
714-
domEach(this, (_, elem) => {
714+
domEach(this, (elem) => {
715715
if (isTag(elem)) removeAttribute(elem, attrNames[i]);
716716
});
717717
}
@@ -791,7 +791,7 @@ export function addClass<T extends Node, R extends ArrayLike<T>>(
791791
): R {
792792
// Support functions
793793
if (typeof value === 'function') {
794-
return domEach(this, (i, el) => {
794+
return domEach(this, (el, i) => {
795795
if (isTag(el)) {
796796
const className = el.attribs.class || '';
797797
addClass.call([el], value.call(el, i, className));
@@ -858,7 +858,7 @@ export function removeClass<T extends Node, R extends ArrayLike<T>>(
858858
): R {
859859
// Handle if value is a function
860860
if (typeof name === 'function') {
861-
return domEach(this, (i, el) => {
861+
return domEach(this, (el, i) => {
862862
if (isTag(el))
863863
removeClass.call([el], name.call(el, i, el.attribs.class || ''));
864864
});
@@ -868,7 +868,7 @@ export function removeClass<T extends Node, R extends ArrayLike<T>>(
868868
const numClasses = classes.length;
869869
const removeAll = arguments.length === 0;
870870

871-
return domEach(this, (_, el) => {
871+
return domEach(this, (el) => {
872872
if (!isTag(el)) return;
873873

874874
if (removeAll) {
@@ -933,7 +933,7 @@ export function toggleClass<T extends Node, R extends ArrayLike<T>>(
933933
): R {
934934
// Support functions
935935
if (typeof value === 'function') {
936-
return domEach(this, (i, el) => {
936+
return domEach(this, (el, i) => {
937937
if (isTag(el)) {
938938
toggleClass.call(
939939
[el],

‎src/api/css.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@ export function css<T extends Node>(
6767
// When `prop` is a "plain" object
6868
(typeof prop === 'object' && !Array.isArray(prop))
6969
) {
70-
return domEach(this, (idx, el) => {
70+
return domEach(this, (el, i) => {
7171
if (isTag(el)) {
7272
// `prop` can't be an array here anymore.
73-
setCss(el, prop as string, val, idx);
73+
setCss(el, prop as string, val, i);
7474
}
7575
});
7676
}

‎src/api/manipulation.ts

+11-11
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function _insert(
6060
) {
6161
const lastIdx = this.length - 1;
6262

63-
return domEach(this, (i, el) => {
63+
return domEach(this, (el, i) => {
6464
if (!hasChildren(el)) return;
6565
const domSrc =
6666
typeof elems[0] === 'function'
@@ -585,7 +585,7 @@ export function after<T extends Node>(
585585
): Cheerio<T> {
586586
const lastIdx = this.length - 1;
587587

588-
return domEach(this, (i, el) => {
588+
return domEach(this, (el, i) => {
589589
const { parent } = el;
590590
if (!DomUtils.hasChildren(el) || !parent) {
591591
return;
@@ -645,7 +645,7 @@ export function insertAfter<T extends Node>(
645645

646646
const clones: T[] = [];
647647

648-
domEach(this._makeDomArray(target), (_, el) => {
648+
this._makeDomArray(target).forEach((el) => {
649649
const clonedSelf = this.clone().toArray();
650650
const { parent } = el;
651651
if (!parent) {
@@ -699,7 +699,7 @@ export function before<T extends Node>(
699699
): Cheerio<T> {
700700
const lastIdx = this.length - 1;
701701

702-
return domEach(this, (i, el) => {
702+
return domEach(this, (el, i) => {
703703
const { parent } = el;
704704
if (!DomUtils.hasChildren(el) || !parent) {
705705
return;
@@ -757,7 +757,7 @@ export function insertBefore<T extends Node>(
757757

758758
const clones: T[] = [];
759759

760-
domEach(targetArr, (_, el) => {
760+
domEach(targetArr, (el) => {
761761
const clonedSelf = this.clone().toArray();
762762
const { parent } = el;
763763
if (!parent) {
@@ -806,7 +806,7 @@ export function remove<T extends Node>(
806806
// Filter if we have selector
807807
const elems = selector ? this.filter(selector) : this;
808808

809-
domEach(elems, (_, el) => {
809+
domEach(elems, (el) => {
810810
DomUtils.removeElement(el);
811811
el.prev = el.next = el.parent = null;
812812
});
@@ -839,7 +839,7 @@ export function replaceWith<T extends Node>(
839839
this: Cheerio<T>,
840840
content: AcceptedElems<Node>
841841
): Cheerio<T> {
842-
return domEach(this, (i, el) => {
842+
return domEach(this, (el, i) => {
843843
const { parent } = el;
844844
if (!parent) {
845845
return;
@@ -883,7 +883,7 @@ export function replaceWith<T extends Node>(
883883
* @see {@link https://api.jquery.com/empty/}
884884
*/
885885
export function empty<T extends Node>(this: Cheerio<T>): Cheerio<T> {
886-
return domEach(this, (_, el) => {
886+
return domEach(this, (el) => {
887887
if (!DomUtils.hasChildren(el)) return;
888888
el.children.forEach((child) => {
889889
child.next = child.prev = child.parent = null;
@@ -930,7 +930,7 @@ export function html<T extends Node>(
930930
// Keep main options unchanged
931931
const opts = { ...this.options, context: null as NodeWithChildren | null };
932932

933-
return domEach(this, (_, el) => {
933+
return domEach(this, (el) => {
934934
if (!DomUtils.hasChildren(el)) return;
935935
el.children.forEach((child) => {
936936
child.next = child.prev = child.parent = null;
@@ -993,13 +993,13 @@ export function text<T extends Node>(
993993
}
994994
if (typeof str === 'function') {
995995
// Function support
996-
return domEach(this, (i, el) => {
996+
return domEach(this, (el, i) => {
997997
text.call(this._make(el), str.call(el, i, staticText([el])));
998998
});
999999
}
10001000

10011001
// Append text node to each selected elements
1002-
return domEach(this, (_, el) => {
1002+
return domEach(this, (el) => {
10031003
if (!DomUtils.hasChildren(el)) return;
10041004
el.children.forEach((child) => {
10051005
child.next = child.prev = child.parent = null;

‎src/api/traversing.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ export function parent<T extends Node>(
8989
): Cheerio<Element> {
9090
const set: Element[] = [];
9191

92-
domEach(this, (_, elem) => {
92+
domEach(this, (elem) => {
9393
const parentElem = elem.parent;
9494
if (
9595
parentElem &&
@@ -245,7 +245,7 @@ export function closest<T extends Node>(
245245
return this._make(set);
246246
}
247247

248-
domEach(this, (_, elem) => {
248+
domEach(this, (elem) => {
249249
const closestElem = traverseParents(this, elem, selector, 1)[0];
250250

251251
// Do not add duplicate elements to the set
@@ -278,7 +278,7 @@ export function next<T extends Node>(
278278
): Cheerio<Element> {
279279
const elems: Element[] = [];
280280

281-
domEach(this, (_, elem) => {
281+
domEach(this, (elem) => {
282282
while (elem.next) {
283283
elem = elem.next;
284284
if (isTag(elem)) {
@@ -315,7 +315,7 @@ export function nextAll<T extends Node>(
315315
): Cheerio<Element> {
316316
const elems: Element[] = [];
317317

318-
domEach(this, (_, elem: Node) => {
318+
domEach(this, (elem: Node) => {
319319
while (elem.next) {
320320
elem = elem.next;
321321
if (isTag(elem) && !elems.includes(elem)) {
@@ -361,7 +361,7 @@ export function nextUntil<T extends Node>(
361361
untilNode = selector;
362362
}
363363

364-
domEach(this, (_, elem) => {
364+
domEach(this, (elem) => {
365365
while (elem.next) {
366366
elem = elem.next;
367367
if (
@@ -405,7 +405,7 @@ export function prev<T extends Node>(
405405
): Cheerio<Element> {
406406
const elems: Element[] = [];
407407

408-
domEach(this, (_, elem: Node) => {
408+
domEach(this, (elem: Node) => {
409409
while (elem.prev) {
410410
elem = elem.prev;
411411
if (isTag(elem)) {
@@ -443,7 +443,7 @@ export function prevAll<T extends Node>(
443443
): Cheerio<Element> {
444444
const elems: Element[] = [];
445445

446-
domEach(this, (_, elem) => {
446+
domEach(this, (elem) => {
447447
while (elem.prev) {
448448
elem = elem.prev;
449449
if (isTag(elem) && !elems.includes(elem)) {
@@ -489,7 +489,7 @@ export function prevUntil<T extends Node>(
489489
untilNode = selector;
490490
}
491491

492-
domEach(this, (_, elem) => {
492+
domEach(this, (elem) => {
493493
while (elem.prev) {
494494
elem = elem.prev;
495495
if (

‎src/cheerio.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ describe('cheerio', () => {
425425
it('cloneDom : should be able clone single Elements', () => {
426426
const main = cheerio('<p>Cheerio</p>') as Cheerio<Element>;
427427
let result: Element[] = [];
428-
utils.domEach<Element>(main, (_, el) => {
428+
utils.domEach<Element>(main, (el) => {
429429
result = [...result, ...utils.cloneDom(el)];
430430
});
431431
expect(result).toHaveLength(1);

‎src/utils.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ export function cssCase(str: string): string {
6363
*/
6464
export function domEach<T extends Node, Arr extends ArrayLike<T> = Cheerio<T>>(
6565
array: Arr,
66-
fn: (index: number, elem: T) => void | false
66+
fn: (elem: T, index: number) => void
6767
): Arr {
6868
const len = array.length;
69-
for (let i = 0; i < len && fn(i, array[i]) !== false; i++);
69+
for (let i = 0; i < len; i++) fn(array[i], i);
7070
return array;
7171
}
7272

0 commit comments

Comments
 (0)
Please sign in to comment.