52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * Copyright (c) 2013-present, Facebook, Inc.
 | |
|  *
 | |
|  * This source code is licensed under the MIT license found in the
 | |
|  * LICENSE file in the root directory of this source tree.
 | |
|  */
 | |
| 
 | |
| 'use strict';
 | |
| 
 | |
| /**
 | |
|  * Use invariant() to assert state which your program assumes to be true.
 | |
|  *
 | |
|  * Provide sprintf-style format (only %s is supported) and arguments
 | |
|  * to provide information about what broke and what you were
 | |
|  * expecting.
 | |
|  *
 | |
|  * The invariant message will be stripped in production, but the invariant
 | |
|  * will remain to ensure logic does not differ in production.
 | |
|  */
 | |
| 
 | |
| var NODE_ENV = process.env.NODE_ENV;
 | |
| 
 | |
| var invariant = function(condition, format, a, b, c, d, e, f) {
 | |
|   if (NODE_ENV !== 'production') {
 | |
|     if (format === undefined) {
 | |
|       throw new Error('invariant requires an error message argument');
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   if (!condition) {
 | |
|     var error;
 | |
|     if (format === undefined) {
 | |
|       error = new Error(
 | |
|         'Minified exception occurred; use the non-minified dev environment ' +
 | |
|         'for the full error message and additional helpful warnings.'
 | |
|       );
 | |
|     } else {
 | |
|       var args = [a, b, c, d, e, f];
 | |
|       var argIndex = 0;
 | |
|       error = new Error(
 | |
|         format.replace(/%s/g, function() { return args[argIndex++]; })
 | |
|       );
 | |
|       error.name = 'Invariant Violation';
 | |
|     }
 | |
| 
 | |
|     error.framesToPop = 1; // we don't care about invariant's own frame
 | |
|     throw error;
 | |
|   }
 | |
| };
 | |
| 
 | |
| module.exports = invariant;
 |