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.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							1.3 KiB
						
					
					
				var safeIsNaN = Number.isNaN ||
 | 
						|
    function ponyfill(value) {
 | 
						|
        return typeof value === 'number' && value !== value;
 | 
						|
    };
 | 
						|
function isEqual(first, second) {
 | 
						|
    if (first === second) {
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
    if (safeIsNaN(first) && safeIsNaN(second)) {
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
    return false;
 | 
						|
}
 | 
						|
function areInputsEqual(newInputs, lastInputs) {
 | 
						|
    if (newInputs.length !== lastInputs.length) {
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
    for (var i = 0; i < newInputs.length; i++) {
 | 
						|
        if (!isEqual(newInputs[i], lastInputs[i])) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
function memoizeOne(resultFn, isEqual) {
 | 
						|
    if (isEqual === void 0) { isEqual = areInputsEqual; }
 | 
						|
    var cache = null;
 | 
						|
    function memoized() {
 | 
						|
        var newArgs = [];
 | 
						|
        for (var _i = 0; _i < arguments.length; _i++) {
 | 
						|
            newArgs[_i] = arguments[_i];
 | 
						|
        }
 | 
						|
        if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {
 | 
						|
            return cache.lastResult;
 | 
						|
        }
 | 
						|
        var lastResult = resultFn.apply(this, newArgs);
 | 
						|
        cache = {
 | 
						|
            lastResult: lastResult,
 | 
						|
            lastArgs: newArgs,
 | 
						|
            lastThis: this,
 | 
						|
        };
 | 
						|
        return lastResult;
 | 
						|
    }
 | 
						|
    memoized.clear = function clear() {
 | 
						|
        cache = null;
 | 
						|
    };
 | 
						|
    return memoized;
 | 
						|
}
 | 
						|
 | 
						|
export { memoizeOne as default };
 |