26 lines
		
	
	
		
			401 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			401 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const internals = {
 | |
|     wrapped: Symbol('wrapped')
 | |
| };
 | |
| 
 | |
| 
 | |
| module.exports = function (method) {
 | |
| 
 | |
|     if (method[internals.wrapped]) {
 | |
|         return method;
 | |
|     }
 | |
| 
 | |
|     let once = false;
 | |
|     const wrappedFn = function (...args) {
 | |
| 
 | |
|         if (!once) {
 | |
|             once = true;
 | |
|             method(...args);
 | |
|         }
 | |
|     };
 | |
| 
 | |
|     wrappedFn[internals.wrapped] = true;
 | |
|     return wrappedFn;
 | |
| };
 |