UNPKG

react-esm

Version:

React is a JavaScript library for building user interfaces.

50 lines (43 loc) 1.42 kB
/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * */ /** * 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. */ let validateFormat = () => {}; if (__DEV__) { validateFormat = function (format) { if (format === undefined) { throw new Error('invariant requires an error message argument'); } }; } export default function invariant(condition, format, a, b, c, d, e, f) { validateFormat(format); if (!condition) { let 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 { const args = [a, b, c, d, e, f]; let 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; } }