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;
 | 
						|
};
 |