From 0c604dad5c3452f2537ed79a9a1e97803ff4243f Mon Sep 17 00:00:00 2001
From: Jared Palmer <jaredloganpalmer@gmail.com>
Date: Sat, 2 Sep 2017 16:42:04 -0400
Subject: [PATCH] Make error overlay filename configurable (#3028)

* Make error overlay file configurable

* Add fallback filename
---
 packages/react-dev-utils/webpackHotDevClient.js           | 1 +
 packages/react-error-overlay/src/index.js                 | 3 ++-
 packages/react-error-overlay/src/listenToRuntimeErrors.js | 7 +++++--
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/packages/react-dev-utils/webpackHotDevClient.js b/packages/react-dev-utils/webpackHotDevClient.js
index b6effe718e5..96a15063231 100644
--- a/packages/react-dev-utils/webpackHotDevClient.js
+++ b/packages/react-dev-utils/webpackHotDevClient.js
@@ -33,6 +33,7 @@ ErrorOverlay.startReportingRuntimeErrors({
       module.hot.decline();
     }
   },
+  filename: 'static/js/bundle.js',
 });
 
 if (module.hot && typeof module.hot.dispose === 'function') {
diff --git a/packages/react-error-overlay/src/index.js b/packages/react-error-overlay/src/index.js
index ff4f1c71404..168baa7ef64 100644
--- a/packages/react-error-overlay/src/index.js
+++ b/packages/react-error-overlay/src/index.js
@@ -21,6 +21,7 @@ import type { ErrorRecord } from './listenToRuntimeErrors';
 type RuntimeReportingOptions = {|
   onError: () => void,
   launchEditorEndpoint: string,
+  filename?: string,
 |};
 
 let iframe: null | HTMLIFrameElement = null;
@@ -55,7 +56,7 @@ export function startReportingRuntimeErrors(options: RuntimeReportingOptions) {
     } finally {
       handleRuntimeError(errorRecord);
     }
-  });
+  }, options.filename);
 }
 
 function handleRuntimeError(errorRecord) {
diff --git a/packages/react-error-overlay/src/listenToRuntimeErrors.js b/packages/react-error-overlay/src/listenToRuntimeErrors.js
index 45c43fa5d40..341200afa8b 100644
--- a/packages/react-error-overlay/src/listenToRuntimeErrors.js
+++ b/packages/react-error-overlay/src/listenToRuntimeErrors.js
@@ -39,7 +39,10 @@ export type ErrorRecord = {|
   stackFrames: StackFrame[],
 |};
 
-export function listenToRuntimeErrors(crash: ErrorRecord => void) {
+export function listenToRuntimeErrors(
+  crash: ErrorRecord => void,
+  filename: string = '/static/js/bundle.js'
+) {
   function crashWithFrames(error: Error, unhandledRejection = false) {
     getStackFrames(error, unhandledRejection, CONTEXT_SIZE)
       .then(stackFrames => {
@@ -68,7 +71,7 @@ export function listenToRuntimeErrors(crash: ErrorRecord => void) {
       {
         message: data.message,
         stack: data.stack,
-        __unmap_source: '/static/js/bundle.js',
+        __unmap_source: filename,
       },
       false
     );