From 4112b32080b3bc7e6d789b931fd5a8261836a113 Mon Sep 17 00:00:00 2001 From: Gert Hengeveld Date: Tue, 1 Dec 2020 11:23:31 +0100 Subject: [PATCH 1/2] Fix IE11 compatibility by avoiding ES6 syntax and using XHR instead of fetch. --- .../server/templates/base-manager-head.html | 21 +++++++++++++------ .../server/templates/base-preview-head.html | 21 +++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/lib/core/src/server/templates/base-manager-head.html b/lib/core/src/server/templates/base-manager-head.html index 5686218e223f..67893d600b41 100644 --- a/lib/core/src/server/templates/base-manager-head.html +++ b/lib/core/src/server/templates/base-manager-head.html @@ -27,11 +27,20 @@ window.onerror = function onerror(message, source, line, column, err) { if (window.CONFIG_TYPE !== 'DEVELOPMENT') return; // eslint-disable-next-line no-var, vars-on-top - var error = { message: err.message, name: err.name, stack: err.stack }; - window.fetch('/runtime-error', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ message, source, line, column, error, origin: 'manager' }), - }); + var xhr = new window.XMLHttpRequest(); + xhr.open('POST', '/runtime-error'); + xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); + xhr.send( + JSON.stringify({ + /* eslint-disable object-shorthand */ + message: message, + source: source, + line: line, + column: column, + error: { message: err.message, name: err.name, stack: err.stack }, + origin: 'manager', + /* eslint-enable object-shorthand */ + }) + ); }; diff --git a/lib/core/src/server/templates/base-preview-head.html b/lib/core/src/server/templates/base-preview-head.html index f80158c80989..3858e9c7f48d 100644 --- a/lib/core/src/server/templates/base-preview-head.html +++ b/lib/core/src/server/templates/base-preview-head.html @@ -115,11 +115,20 @@ window.onerror = function onerror(message, source, line, column, err) { if (window.CONFIG_TYPE !== 'DEVELOPMENT') return; // eslint-disable-next-line no-var, vars-on-top - var error = { message: err.message, name: err.name, stack: err.stack }; - window.fetch('/runtime-error', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ message, source, line, column, error, origin: 'preview' }), - }); + var xhr = new window.XMLHttpRequest(); + xhr.open('POST', '/runtime-error'); + xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); + xhr.send( + JSON.stringify({ + /* eslint-disable object-shorthand */ + message: message, + source: source, + line: line, + column: column, + error: { message: err.message, name: err.name, stack: err.stack }, + origin: 'preview', + /* eslint-enable object-shorthand */ + }) + ); }; From 4878bb9b780d97c6af32250d569712dfe3b26673 Mon Sep 17 00:00:00 2001 From: Gert Hengeveld Date: Tue, 1 Dec 2020 15:20:46 +0100 Subject: [PATCH 2/2] err can be undefined. --- lib/core/src/server/dev-server.ts | 4 ++-- lib/core/src/server/templates/base-manager-head.html | 2 +- lib/core/src/server/templates/base-preview-head.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/core/src/server/dev-server.ts b/lib/core/src/server/dev-server.ts index 900efa33f481..d29c127a1537 100644 --- a/lib/core/src/server/dev-server.ts +++ b/lib/core/src/server/dev-server.ts @@ -283,9 +283,9 @@ const startManager = async ({ // Used to report back any client-side (runtime) errors router.post('/runtime-error', express.json(), (request, response) => { - if (request.body?.error) { + if (request.body?.error || request.body?.message) { logger.error('Runtime error! Check your browser console.'); - logger.error(request.body.error.stack || request.body.message || request.body); + logger.error(request.body.error?.stack || request.body.message || request.body); if (request.body.origin === 'manager') clearManagerCache(options.cache); } response.sendStatus(200); diff --git a/lib/core/src/server/templates/base-manager-head.html b/lib/core/src/server/templates/base-manager-head.html index 67893d600b41..8141504c0f20 100644 --- a/lib/core/src/server/templates/base-manager-head.html +++ b/lib/core/src/server/templates/base-manager-head.html @@ -37,7 +37,7 @@ source: source, line: line, column: column, - error: { message: err.message, name: err.name, stack: err.stack }, + error: err && { message: err.message, name: err.name, stack: err.stack }, origin: 'manager', /* eslint-enable object-shorthand */ }) diff --git a/lib/core/src/server/templates/base-preview-head.html b/lib/core/src/server/templates/base-preview-head.html index 3858e9c7f48d..f6f6f49a9e6b 100644 --- a/lib/core/src/server/templates/base-preview-head.html +++ b/lib/core/src/server/templates/base-preview-head.html @@ -125,7 +125,7 @@ source: source, line: line, column: column, - error: { message: err.message, name: err.name, stack: err.stack }, + error: err && { message: err.message, name: err.name, stack: err.stack }, origin: 'preview', /* eslint-enable object-shorthand */ })