function debounce (func, wait, immediate) { let timeout return function () { const context = this; const args = arguments const callNow = immediate && !timeout clearTimeout(timeout) timeout = setTimeout(() => { timeout = null if (!immediate) func.apply(context, args) }, wait) if (callNow) func.apply(context, args) } } module.exports = { debounce } /*! * MediaElementPlayer * http://mediaelementjs.com/ * * Creates a controller bar for HTML5