purplejs
Version:
A little bit of React
25 lines (19 loc) • 636 B
text/typescript
import ElementObject from '../../interfaces/element-object'
import HTMLElement from '../../interfaces/html-element'
import keyIsEvent from '../key-is-event/index'
import addEvent from './add-event'
import addProperty from './add-property'
export default (
element: ElementObject,
dom: HTMLElement,
): HTMLElement => {
const propKeys: string[] = Object.keys(element.props || {})
if (!propKeys.length) return dom;
const clonedDOM: HTMLElement = dom.cloneNode()
propKeys.forEach(key => {
keyIsEvent(key)
? addEvent(element, clonedDOM, key)
: addProperty(element, clonedDOM, key)
})
return clonedDOM
}