Skip to content

Commit bdb5adc

Browse files
updated: Use the moveBefore to move nodes if it's supported
1 parent a8cb601 commit bdb5adc

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

dom.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { dashToCamelCase } from './strings.js'
22

3+
// Rely on the new moveBefore method to move nodes if it's available https://developer.mozilla.org/en-US/docs/Web/API/Element/moveBefore
4+
const MOVE_BEFORE_METHOD = Element?.prototype?.moveBefore
5+
? 'moveBefore'
6+
: 'insertBefore'
7+
38
/**
49
* Get all the element attributes as object
510
* @param {HTMLElement} element - DOM node we want to parse
@@ -59,9 +64,7 @@ export const removeChild = (node) => node.remove()
5964
* @returns {undefined}
6065
*/
6166
export const insertBefore = (newNode, refNode) =>
62-
refNode &&
63-
refNode.parentNode &&
64-
refNode.parentNode.insertBefore(newNode, refNode)
67+
refNode?.parentNode?.[MOVE_BEFORE_METHOD](newNode, refNode)
6568

6669
/**
6770
* Replace a node
@@ -70,6 +73,4 @@ export const insertBefore = (newNode, refNode) =>
7073
* @returns {undefined}
7174
*/
7275
export const replaceChild = (newNode, replaced) =>
73-
replaced &&
74-
replaced.parentNode &&
75-
replaced.parentNode.replaceChild(newNode, replaced)
76+
replaced?.parentNode?.replaceChild(newNode, replaced)

0 commit comments

Comments
 (0)