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.
		
		
		
		
		
			
		
			
				
					21 lines
				
				454 B
			
		
		
			
		
	
	
					21 lines
				
				454 B
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, '__esModule', { value: true });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var weakMemoize = function weakMemoize(func) {
							 | 
						||
| 
								 | 
							
								  // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
							 | 
						||
| 
								 | 
							
								  var cache = new WeakMap();
							 | 
						||
| 
								 | 
							
								  return function (arg) {
							 | 
						||
| 
								 | 
							
								    if (cache.has(arg)) {
							 | 
						||
| 
								 | 
							
								      // $FlowFixMe
							 | 
						||
| 
								 | 
							
								      return cache.get(arg);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var ret = func(arg);
							 | 
						||
| 
								 | 
							
								    cache.set(arg, ret);
							 | 
						||
| 
								 | 
							
								    return ret;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.default = weakMemoize;
							 |