You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							61 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							61 lines
						
					
					
						
							1.8 KiB
						
					
					
				| //      
 | |
| // An event handler can take an optional event argument
 | |
| // and should not return a value
 | |
|                                           
 | |
| // An array of all currently registered event handlers for a type
 | |
|                                             
 | |
| // A map of event types and their corresponding event handlers.
 | |
|                         
 | |
|                                    
 | |
|   
 | |
| 
 | |
| /** Mitt: Tiny (~200b) functional event emitter / pubsub.
 | |
|  *  @name mitt
 | |
|  *  @returns {Mitt}
 | |
|  */
 | |
| function mitt(all                 ) {
 | |
| 	all = all || Object.create(null);
 | |
| 
 | |
| 	return {
 | |
| 		/**
 | |
| 		 * Register an event handler for the given type.
 | |
| 		 *
 | |
| 		 * @param  {String} type	Type of event to listen for, or `"*"` for all events
 | |
| 		 * @param  {Function} handler Function to call in response to given event
 | |
| 		 * @memberOf mitt
 | |
| 		 */
 | |
| 		on: function on(type        , handler              ) {
 | |
| 			(all[type] || (all[type] = [])).push(handler);
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Remove an event handler for the given type.
 | |
| 		 *
 | |
| 		 * @param  {String} type	Type of event to unregister `handler` from, or `"*"`
 | |
| 		 * @param  {Function} handler Handler function to remove
 | |
| 		 * @memberOf mitt
 | |
| 		 */
 | |
| 		off: function off(type        , handler              ) {
 | |
| 			if (all[type]) {
 | |
| 				all[type].splice(all[type].indexOf(handler) >>> 0, 1);
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Invoke all handlers for the given type.
 | |
| 		 * If present, `"*"` handlers are invoked after type-matched handlers.
 | |
| 		 *
 | |
| 		 * @param {String} type  The event type to invoke
 | |
| 		 * @param {Any} [evt]  Any value (object is recommended and powerful), passed to each handler
 | |
| 		 * @memberof mitt
 | |
| 		 */
 | |
| 		emit: function emit(type        , evt     ) {
 | |
| 			(all[type] || []).map(function (handler) { handler(evt); });
 | |
| 			(all['*'] || []).map(function (handler) { handler(type, evt); });
 | |
| 		}
 | |
| 	};
 | |
| }
 | |
| 
 | |
| export default mitt;
 | |
| //# sourceMappingURL=mitt.es.js.map
 |