coc-nuxt-iview
Version:
coc engine based implementation for nuxt-iview applications
45 lines (43 loc) • 1.11 kB
JavaScript
export default class Event {
constructor(options) {
this.defaults = {
api: '$nuxt',
listener: '$on',
emit: '$emit'
}
const finalOptions = options || null
this.api = finalOptions.api
? finalOptions && finalOptions.api
: this.defaults.api
this.listener =
finalOptions && finalOptions.listener
? finalOptions.listener
: this.defaults.listener
this.emit =
finalOptions && finalOptions.emit ? finalOptions.emit : this.defaults.emit
this.val = this
}
// Listeners
//Single Listener
On(event, callback) {
this.api[this.listener](event, callback)
}
// Many Events, Same Callback
OnMultiple(events, callback) {
let i
for (i = 0; i < events.length; i += 1) {
this.On(events[i], callback)
}
}
// Quick Setup, object of events names as attributes, callback as their values
OnMap(map) {
let i
const keys = Object.keys(map)
for (i = 0; i < keys.length; i += 1) {
this.On(keys[i], map[keys[i]])
}
}
Emit(event, payload) {
this.api[this.emit](event, payload)
}
}