diff --git a/resources/inline-invariant.js b/resources/inline-invariant.js index c2d3a9cdd5..d0a6517985 100644 --- a/resources/inline-invariant.js +++ b/resources/inline-invariant.js @@ -15,9 +15,7 @@ */ module.exports = function inlineInvariant(context) { const replaceTemplate = context.template(` - if (!%%cond%%) { - invariant(0, %%args%%); - } + (%%cond%%) || invariant(0, %%args%%) `); return { @@ -39,9 +37,9 @@ module.exports = function inlineInvariant(context) { function isAppropriateInvariantCall(node, parent) { return ( + parent.type === 'ExpressionStatement' && node.callee.type === 'Identifier' && node.callee.name === 'invariant' && - node.arguments.length > 0 && - parent.type === 'ExpressionStatement' + node.arguments.length > 0 ); } diff --git a/src/jsutils/invariant.js b/src/jsutils/invariant.js index 083c6b0997..31aacd5a6a 100644 --- a/src/jsutils/invariant.js +++ b/src/jsutils/invariant.js @@ -1,9 +1,9 @@ // @flow strict -export default function invariant(condition: mixed, message: string) { +/* istanbul ignore file */ +export default function invariant(condition: mixed, message?: string): void { const booleanCondition = Boolean(condition); - /* istanbul ignore else */ if (!booleanCondition) { - throw new Error(message); + throw new Error(message || 'Unexpected invariant triggered'); } }