Wrap element snippet

I've found myself needing to do this on a couple of projects lately so it seemed like a good idea to write it down here as a snippet to reference later.

This sort of a vanilla replacement for jQuery's .wrap() method

/**
 * Helper function to wrap one element with a new element
 *
 * @param {String} wrapWith - the name the element to create as the wrapper
 * @param {Element} toWrap - The existing element to wrap
 * @param {Object} attributes - An object of key value pairs used to create HTML attributes
 */
function wrap(wrapWith, toWrap, attributes) {
  const wrapperElement = document.createElement(wrapWith);
  if (attributes) {
    for (let attr in attributes) {
      wrapperElement.setAttribute(attr, attributes[attr])
    }
  }
  toWrap.parentNode.insertBefore(wrapperElement, toWrap)
  wrapperElement.appendChild(toWrap)
}