code: function element(node, options = {}) {
    const { namespace } = options;
    const { tagName, properties, children = [] } = node;
    const el = typeof namespace !== 'undefined'
      ? document.createElementNS(namespace, tagName)
      : document.createElement(tagName);
  
    // Add HTML attributes
    const props = Object.keys(properties);
    const { length } = props;
    for (let i = 0; i < length; i += 1) {
      const key = props[i];
      const {
        attribute,
        property,
        mustUseAttribute,
        mustUseProperty,
        boolean,
        booleanish,
        overloadedBoolean,
        // number,
        // defined,
        commaSeparated,
        spaceSeparated,
        // commaOrSpaceSeparated,
      } = info.find(info.html, key) || {
        attribute: key,
        property: key,
      };
  
      let value = properties[key];
      if (Array.isArray(value)) {
        if (commaSeparated) {
          value = value.join(', ');
        } else if (spaceSeparated) {
          value = value.join(' ');
        } else {
          value = value.join(' ');
        }
      }
  
      try {
        if (mustUseProperty) {
          el[property] = value;
        }
        if (boolean || (overloadedBoolean && typeof value === 'boolean')) {
          if (value) {
            el.setAttribute(attribute, '');
          } else {
            el.removeAttribute(attribute);
          }
        } else if (booleanish) {
          el.setAttribute(attribute, value);
        } else if (value === true) {
          el.setAttribute(attribute, '');
        } else if (value || value === 0 || value === '') {
          el.setAttribute(attribute, value);
        }
      } catch (e) {
        if (!mustUseAttribute && property) {
          el[property] = value;
        }
        // Otherwise silently ignore
      }
    }
  
    // Transform children
    const { length: childrenLength } = children;
    for (let i = 0; i < childrenLength; i += 1) {
      const childEl = transform(children[i], options);
      if (childEl) {
        el.appendChild(childEl);
      }
    }
  
    return el;
  }
docs: Transform an element