diff --git a/resources/figwheel-bridge.js b/resources/figwheel-bridge.js index 6d44d98..1891602 100644 --- a/resources/figwheel-bridge.js +++ b/resources/figwheel-bridge.js @@ -164,8 +164,25 @@ function interceptRequire() { function compileWarningsToYellowBox() { var log = window.console.log; var compileWarningRx = /Figwheel: Compile/; + var compileExceptionRx = /Figwheel: Compile Exception/; + var errorInFileRx = /Error on file/; + var isBuffering = false; + var compileExceptionBuffer = ""; window.console.log = function (msg) { - if (compileWarningRx.test(msg)) { + if (compileExceptionRx.test(msg)) { // enter buffering mode to get all the messages for exception + log.apply(window.console, arguments); + isBuffering = true; + compileExceptionBuffer = msg + "\n"; + } else if (errorInFileRx.test(msg) && isBuffering) { // exit buffering mode and log buffered messages to YellowBox + log.apply(window.console, arguments); + isBuffering = false; + console.warn(compileExceptionBuffer + msg); + compileExceptionBuffer = ""; + } else if (isBuffering) { //log messages buffering mode + log.apply(window.console, arguments); + compileExceptionBuffer += msg + "\n"; + } else if (compileWarningRx.test(msg)) { + log.apply(window.console, arguments); console.warn(msg); } else { log.apply(window.console, arguments);