@jecloud/utils
Version:
JECloud 工具库
1 lines • 782 B
JavaScript
var r=this&&this.__spreadArrays||function(){for(var r=0,n=0,t=arguments.length;n<t;n++)r+=arguments[n].length;var e=Array(r),o=0;for(n=0;n<t;n++)for(var a=arguments[n],i=0,f=a.length;i<f;i++,o++)e[o]=a[i];return e};import{isString as n,forEach as t,isPlainObject as e}from"lodash-es";export function mitt(o){return{listeners:o=o||new Map,on:function(r,t){if(r&&n(r)&&t){var e=o.get(r)||[];e.push(t),o.set(r,e)}},off:function(r,n){var t=o.get(r);n&&t?t=t.filters((function(r){return r!==n})):o.delete(r)},emit:function(n){for(var a=[],i=1;i<arguments.length;i++)a[i-1]=arguments[i];var f,l=o.get(n);return t(l,(function(n){var t;return e(n)?n.onece&&(f=null===(t=n.fn)||void 0===t?void 0:t.call.apply(t,r([n],a)),n=null):f=n.apply(void 0,a),!1!==f})),f},clear:function(){o.clear()}}}