UNPKG

@arayutw/emitter

Version:

Functional Event Emitter(Pubsub).

7 lines (6 loc) 1.07 kB
/**! * emitter 0.0.1 * MIT License * Copyright (c) 2023 Yuta Arai **/ function e(){"use strict";var n=Object.defineProperty,o=Object.defineProperties,f=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,c=(e,t,i)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;return class{constructor(){this.Emitter$items=[]}on(e,t,i){this.off(e,t),this.Emitter$items.push([e,t,{once:!(null==i||!i.once)}])}off(i,n){for(let e=this.Emitter$items,t=0;e.length>t;t++)("*"===i||e[t][0]===i&&e[t][1]===n)&&e.splice(t--,1)}emit(i,n){this.Emitter$items.forEach(e=>{var t;i===e[0]&&(e[1]((t=((e,t)=>{for(var i in t=n||{})l.call(t,i)&&c(e,i,t[i]);if(r)for(var i of r(t))s.call(t,i)&&c(e,i,t[i]);return e})({}),o(t,f({target:this,type:i})))),null!=(t=e[2]))&&t.once&&this.off(i,e[1])})}}}var t=this;"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Emitter=e();