export function getMetaValue(name) {

const element = findElement(document.head, `meta[name="${name}"]`)
if (element) {
  return element.getAttribute("content")
}

}

export function findElements(root, selector) {

if (typeof root == "string") {
  selector = root
  root = document
}
const elements = root.querySelectorAll(selector)
return toArray(elements)

}

export function findElement(root, selector) {

if (typeof root == "string") {
  selector = root
  root = document
}
return root.querySelector(selector)

}

export function dispatchEvent(element, type, eventInit = {}) {

const { bubbles, cancelable, detail } = eventInit
const event = document.createEvent("Event")
event.initEvent(type, bubbles || true, cancelable || true)
event.detail = detail || {}
element.dispatchEvent(event)
return event

}

export function toArray(value) {

if (Array.isArray(value)) {
  return value
} else if (Array.from) {
  return Array.from(value)
} else {
  return [].slice.call(value)
}

}