diff options
Diffstat (limited to 'preact/compat/src/util.js')
-rw-r--r-- | preact/compat/src/util.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/preact/compat/src/util.js b/preact/compat/src/util.js new file mode 100644 index 0000000..fa12b09 --- /dev/null +++ b/preact/compat/src/util.js @@ -0,0 +1,28 @@ +/** + * Assign properties from `props` to `obj` + * @template O, P The obj and props types + * @param {O} obj The object to copy properties to + * @param {P} props The object to copy properties from + * @returns {O & P} + */ +export function assign(obj, props) { + for (let i in props) obj[i] = props[i]; + return /** @type {O & P} */ (obj); +} + +/** + * Check if two objects have a different shape + * @param {object} a + * @param {object} b + * @returns {boolean} + */ +export function shallowDiffers(a, b) { + for (let i in a) if (i !== '__source' && !(i in b)) return true; + for (let i in b) if (i !== '__source' && a[i] !== b[i]) return true; + return false; +} + +export function removeNode(node) { + let parentNode = node.parentNode; + if (parentNode) parentNode.removeChild(node); +} |