@antv/f6-plugin
Version:
F6 plugin
33 lines (29 loc) • 758 B
JavaScript
import { __spreadArray } from "tslib";
var events = {};
export function dispatch(key) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
var fns = events[key];
fns === null || fns === void 0 ? void 0 : fns.forEach(function (fn) {
fn.apply(null, args);
});
}
export function subscribe(key, fn) {
events[key] = __spreadArray(__spreadArray([], events[key] || []), [fn]);
}
export function unsubscribe(key, fn) {
var _a;
if (!fn) {
delete events[key];
return;
}
if (events[key]) {
var index = (_a = events[key]) === null || _a === void 0 ? void 0 : _a.indexOf(fn);
index > -1 && events[key].splice(index, 1);
}
}
export function unsubscribeAll() {
events = {};
}