Created
March 31, 2016 18:17
-
-
Save fcavalcantirj/e6cf77264482faece400e9b3e438ea84 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Copyright 2013-2015, Facebook, Inc. | |
| * All rights reserved. | |
| * | |
| * This source code is licensed under the BSD-style license found in the | |
| * LICENSE file in the root directory of this source tree. An additional grant | |
| * of patent rights can be found in the PATENTS file in the same directory. | |
| * | |
| * @providesModule invariant | |
| */ | |
| '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. | |
| */ | |
| function invariant(condition, format, a, b, c, d, e, f) { | |
| if (process.env.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; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment