Skip to content
This repository was archived by the owner on Dec 1, 2023. It is now read-only.

Commit f8239c7

Browse files
author
Steffan
committed
export EventManager as default
1 parent 202e666 commit f8239c7

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

src/index.js

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,47 +5,46 @@
55
import EventManager from './EventManager';
66
import { forEach, isArray, isObject } from './util';
77

8-
function plugin(Vue) {
8+
var Events = new EventManager();
99

10-
if (plugin.installed) {
10+
Events.install = function (Vue) {
11+
12+
if (this.installed) {
1113
return;
1214
}
1315

14-
var Events = new EventManager();
15-
var version = Number(Vue.version.split('.')[0]);
16+
Vue.events = this;
17+
Vue.prototype.$events = this;
18+
Vue.prototype.$trigger = this.trigger.bind(this);
19+
Vue.mixin(Number(Vue.version[0]) < 2 ? {init: initEvents} : {beforeCreate: initEvents});
20+
};
1621

17-
function initEvents() {
22+
function initEvents() {
1823

19-
var {events} = this.$options, _events = [];
24+
var {events} = this.$options, _events = [];
2025

21-
if (events) {
26+
if (events) {
2227

23-
forEach(events, (listeners, event) => {
24-
forEach(isArray(listeners) ? listeners : [listeners], listener => {
28+
forEach(events, (listeners, event) => {
29+
forEach(isArray(listeners) ? listeners : [listeners], listener => {
2530

26-
var priority = 0;
31+
var priority = 0;
2732

28-
if (isObject(listener)) {
29-
priority = listener.priority;
30-
listener = listener.handler;
31-
}
33+
if (isObject(listener)) {
34+
priority = listener.priority;
35+
listener = listener.handler;
36+
}
3237

33-
_events.push(Events.on(event, listener.bind(this), priority));
34-
});
38+
_events.push(Events.on(event, listener.bind(this), priority));
3539
});
40+
});
3641

37-
this.$on('hook:beforeDestroy', () => _events.forEach(off => off()));
38-
}
42+
this.$on('hook:beforeDestroy', () => _events.forEach(off => off()));
3943
}
40-
41-
Vue.events = Events;
42-
Vue.prototype.$events = Events;
43-
Vue.prototype.$trigger = Events.trigger.bind(Events);
44-
Vue.mixin(version < 2 ? {init: initEvents} : {beforeCreate: initEvents});
4544
}
4645

4746
if (typeof window !== 'undefined' && window.Vue) {
48-
window.Vue.use(plugin);
47+
window.Vue.use(Events);
4948
}
5049

51-
export default plugin;
50+
export default Events;

0 commit comments

Comments
 (0)