UNPKG

test-tw-publish

Version:

描述

54 lines (53 loc) 1.79 kB
var v = Object.defineProperty; var f = (s, t, n) => t in s ? v(s, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : s[t] = n; var l = (s, t, n) => (f(s, typeof t != "symbol" ? t + "" : t, n), n); const u = (s = 6) => Math.random().toString(36).slice(2, s + 2).padEnd(s, Math.floor(10 * Math.random()) + ""), _ = (s) => { for (let t = s.length - 1; t >= 0; t--) { const n = Math.floor(Math.random() * (t + 1)), e = s[n]; s[n] = s[t], s[t] = e; } return s; }; class d { constructor(t) { l(this, "_event"); this._event = t.event || {}; } subscribe(t, n) { const e = t; if (!this._event[e]) return console.error(`${e} 事件订阅失败,因为它不在事件 [` + Object.keys(this._event).join(",") + "] 范围内"), { id: "", success: !1 }; this._event[e] || (this._event[e] = []); const i = ((o = 3, h = 6) => { let r = [Date.now().toString(36)]; for (let c = o - 1; c >= 0; c--) r.push(u(h)); return r = _(r), r.join("-"); })(); return this._event[e].push({ id: i, fn: n }), { id: i, success: !0 }; } unsubscribe(t, n) { const e = t; if (e || n) { if (e && !n && this._event[e]) this._event[e] = []; else if (e && n && this._event[e]) { const i = this._event[e] || [], o = i.findIndex((h) => h.id === n); o !== -1 && i.splice(o, 1); } } else for (const i in this._event) this._event[i] = []; } publish(t, n) { const e = t; if (!this._event[e]) return void console.error(`${e} 事件发布失败,因为它不在事件 [` + Object.keys(this._event).join(",") + "] 范围内"); (this._event[e] || []).forEach((i) => { i && i.fn && i.fn(n || null); }); } } export { d as default };