zoro-cli
Version:
https://github.com/vuejs/vue-cli
66 lines (56 loc) • 1.31 kB
JavaScript
import { logBlank, logWithName } from '../log'
export function stopPropagation(e) {
e.stopPropagation()
}
export function preventDefault(e) {
e.preventDefault()
}
export function preventDefaultSelf(e) {
if (e && e.target === e.currentTarget) {
e.preventDefault()
}
}
export function on(node, eventType, cb, ...args) {
node.addEventListener(eventType, cb, ...args)
}
export function off(node, eventType, cb, ...args) {
node.removeEventListener(eventType, cb, ...args)
}
export function once(node, eventType, cb, ...args) {
const _cb = e => {
off(node, eventType, _cb)
if (typeof cb === 'function') {
cb(e)
}
}
on(node, eventType, _cb, ...args)
}
function resume(func, cb) {
if (typeof func === 'function') {
func(document, 'resume', event => {
logBlank()
logWithName('onResume event', event)
const data = (event && event.data) || {}
logWithName('onResume data', data)
if (typeof cb === 'function') {
cb(data)
}
})
}
}
export function onResume(cb) {
if (cb) {
return resume(on, cb)
}
return new Promise(resolve => {
resume(on, resolve)
})
}
export function onResumeOnce(cb) {
if (cb) {
return resume(once, cb)
}
return new Promise(resolve => {
resume(once, resolve)
})
}