moy-dom
Version:
A flexiable Virtual DOM library for building modern web interface.
30 lines (29 loc) • 735 B
JavaScript
import {
domAttrs,
boolAttrs,
} from '../specialAttrs'
/**
* [setProps set node propertities with given props]
* @param {[DOMElement]} node [the node]
* @param {[Object]} props [given props]
* @return {[undefined]} [undefined]
*/
export default function setProps(node, props){
for(let [key, value] of Object.entries(props)){
if(domAttrs[key] || /^on\w+/.test(key)){
node[key] = value === undefined ? null : value
}else if(boolAttrs[key]){
if(value){
node.setAttribute(key, key)
}else{
node.removeAttribute(key)
}
}else{
if(value === undefined){
node.removeAttribute(key)
}else{
node.setAttribute(key, value)
}
}
}
}