From 3e2d616da6683f2e04d2a16c4568488df9fe3176 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 30 Jul 2019 13:26:53 +0300 Subject: [PATCH] invariant: improve code that babel outputs --- resources/inline-invariant.js | 8 +++----- src/jsutils/invariant.js | 6 +++--- 2 files changed, 6 insertions(+), 8 deletions(-) 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'); } }