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
			| 
								 
											4 years ago
										 
									 | 
							
								//      
							 | 
						||
| 
								 | 
							
								// 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
							 |