Skip to content

Commit a97b74c

Browse files
committed
build
1 parent b706882 commit a97b74c

File tree

2 files changed

+72
-38
lines changed

2 files changed

+72
-38
lines changed

cjs/index.js

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var __extends = (this && this.__extends) || (function () {
1010
};
1111
})();
1212
Object.defineProperty(exports, "__esModule", { value: true });
13+
var vue_1 = require("vue");
1314
var js_simple_events_1 = require("js-simple-events");
1415
var EventManagment = /** @class */ (function (_super) {
1516
__extends(EventManagment, _super);
@@ -23,6 +24,34 @@ var EventManagment = /** @class */ (function (_super) {
2324
}
2425
return EventManagment;
2526
}(js_simple_events_1.default));
27+
function bindEvents(obj, from, to) {
28+
var evts = obj[from];
29+
if (evts) {
30+
obj[to] = {};
31+
for (var k in evts) {
32+
obj[to][k] = ~evts[k].name.indexOf('bound ') ? evts[k] : evts[k].bind(this);
33+
}
34+
}
35+
}
36+
function addEventListener(event, handler, isOnce) {
37+
if (isOnce === void 0) { isOnce = false; }
38+
vue_1.default.prototype.$events[isOnce ? 'once' : 'on'](event, handler);
39+
}
40+
function addEventListeners(obj, isOnce) {
41+
if (isOnce === void 0) { isOnce = false; }
42+
if (obj) {
43+
for (var k in obj) {
44+
addEventListener(k, obj[k], isOnce);
45+
}
46+
}
47+
}
48+
function removeEventListeners(obj) {
49+
if (obj) {
50+
for (var k in obj) {
51+
vue_1.default.prototype.$events.off(k, obj[k]);
52+
}
53+
}
54+
}
2655
var eventsPlugins = function (Vue) {
2756
var eventManagement = new EventManagment();
2857
Object.defineProperties(Vue.prototype, {
@@ -35,31 +64,19 @@ var eventsPlugins = function (Vue) {
3564
Vue.mixin({
3665
beforeCreate: function () {
3766
var $this = this;
38-
var evts = $this.$options.on;
39-
if (evts) {
40-
$this.$options.$setEvents = {};
41-
for (var k in evts) {
42-
$this.$options.$setEvents[k] = ~evts[k].name.indexOf('bound ') ? evts[k] : evts[k].bind(this);
43-
}
44-
}
67+
var options = $this.$options;
68+
bindEvents(options, 'on', '$setEventsOn');
69+
bindEvents(options, 'once', '$setEventsOnce');
4570
},
4671
created: function () {
4772
var $this = this;
48-
var evts = $this.$options.$setEvents;
49-
if (evts) {
50-
for (var k in evts) {
51-
Vue.prototype.$events.on(k, evts[k]);
52-
}
53-
}
73+
addEventListeners($this.$options.$setEventsOn, false);
74+
addEventListeners($this.$options.$setEventsOnce, true);
5475
},
5576
beforeDestroy: function () {
5677
var $this = this;
57-
var evts = $this.$options.$setEvents;
58-
if (evts) {
59-
for (var k in evts) {
60-
Vue.prototype.$events.off(k, evts[k]);
61-
}
62-
}
78+
removeEventListeners($this.$options.$setEventsOn);
79+
removeEventListeners($this.$options.$setEventsOnce);
6380
}
6481
});
6582
};

es5/index.js

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ var __extends = (this && this.__extends) || (function () {
88
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
99
};
1010
})();
11+
import Vue from 'vue';
1112
import JSEventManagment from 'js-simple-events';
1213
var EventManagment = /** @class */ (function (_super) {
1314
__extends(EventManagment, _super);
@@ -21,6 +22,34 @@ var EventManagment = /** @class */ (function (_super) {
2122
}
2223
return EventManagment;
2324
}(JSEventManagment));
25+
function bindEvents(obj, from, to) {
26+
var evts = obj[from];
27+
if (evts) {
28+
obj[to] = {};
29+
for (var k in evts) {
30+
obj[to][k] = ~evts[k].name.indexOf('bound ') ? evts[k] : evts[k].bind(this);
31+
}
32+
}
33+
}
34+
function addEventListener(event, handler, isOnce) {
35+
if (isOnce === void 0) { isOnce = false; }
36+
Vue.prototype.$events[isOnce ? 'once' : 'on'](event, handler);
37+
}
38+
function addEventListeners(obj, isOnce) {
39+
if (isOnce === void 0) { isOnce = false; }
40+
if (obj) {
41+
for (var k in obj) {
42+
addEventListener(k, obj[k], isOnce);
43+
}
44+
}
45+
}
46+
function removeEventListeners(obj) {
47+
if (obj) {
48+
for (var k in obj) {
49+
Vue.prototype.$events.off(k, obj[k]);
50+
}
51+
}
52+
}
2453
var eventsPlugins = function (Vue) {
2554
var eventManagement = new EventManagment();
2655
Object.defineProperties(Vue.prototype, {
@@ -33,31 +62,19 @@ var eventsPlugins = function (Vue) {
3362
Vue.mixin({
3463
beforeCreate: function () {
3564
var $this = this;
36-
var evts = $this.$options.on;
37-
if (evts) {
38-
$this.$options.$setEvents = {};
39-
for (var k in evts) {
40-
$this.$options.$setEvents[k] = ~evts[k].name.indexOf('bound ') ? evts[k] : evts[k].bind(this);
41-
}
42-
}
65+
var options = $this.$options;
66+
bindEvents(options, 'on', '$setEventsOn');
67+
bindEvents(options, 'once', '$setEventsOnce');
4368
},
4469
created: function () {
4570
var $this = this;
46-
var evts = $this.$options.$setEvents;
47-
if (evts) {
48-
for (var k in evts) {
49-
Vue.prototype.$events.on(k, evts[k]);
50-
}
51-
}
71+
addEventListeners($this.$options.$setEventsOn, false);
72+
addEventListeners($this.$options.$setEventsOnce, true);
5273
},
5374
beforeDestroy: function () {
5475
var $this = this;
55-
var evts = $this.$options.$setEvents;
56-
if (evts) {
57-
for (var k in evts) {
58-
Vue.prototype.$events.off(k, evts[k]);
59-
}
60-
}
76+
removeEventListeners($this.$options.$setEventsOn);
77+
removeEventListeners($this.$options.$setEventsOnce);
6178
}
6279
});
6380
};

0 commit comments

Comments
 (0)