UNPKG

@antv/f6-plugin

Version:
48 lines (37 loc) 968 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dispatch = dispatch; exports.subscribe = subscribe; exports.unsubscribe = unsubscribe; exports.unsubscribeAll = unsubscribeAll; var _tslib = require("tslib"); var events = {}; 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); }); } function subscribe(key, fn) { events[key] = (0, _tslib.__spreadArray)((0, _tslib.__spreadArray)([], events[key] || []), [fn]); } 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); } } function unsubscribeAll() { events = {}; }